关于ios中的时间戳的小问题

792 阅读1分钟

最近在写小程序的时候碰到的一个小问题

  • 在ios中是不识别"yyyy-MM-dd HH:mm:ss"格式的时间类型,
    
  • 自然只能改成"yyyy/MM/dd HH:mm:ss"将时间格式中的'-'改成'/'
    

项目因为用到时间转时间戳,于是直接使用date.parse()转换得到时间戳

// datetime是之前保存的,date为“yyyy-MM-dd”格式
// time为“HH:mm:ss”格式
date.parse(date + " " + time); 

在模拟器和android手机上也能正常运行。 但是,跑到ios上就出问题了,调试之后发现时间转换后得到的是NaN 查过之后才知道原来,在ios上是不识别“yyyy-MM-dd HH:mm:ss”格式的时间的,它的日期需要通过“/”来分隔 然后,代码稍作修改:

var dateTime = (date + " " + time).replace(/-/g, "/");
date.parse(dateTime )

replace很好理解,而其中的第一个参数/-/g属于正则,/-/表示匹配“-”字符,后面的g匹配所有的“-”,所以这一句代码的意思即,将所有的“-”替换为“/”,即时间格式替换为“yyyy/MM/dd HH:mm:ss”

欢迎大家一起讨论前端知识,一起进步,一起掘墓