safari不支持new Date函数

最近在做移动Web的时候,在PC上用Chrome调试都成功了,但是在iPhone上真机一测就出现了奇怪的问题。经过一系列调试发现是日期相关的地方出现了问题。起初怀疑是生产环境的问题,但用Mac版的safari调试本地也出现了同样的问题。查阅一些资料后发现,safari中对于JavaScript的new Date函数的支持有一个比较奇怪的问题,不只是safari浏览器,ios上的浏览器都会弹出invalid date,进行new date()转化的时候变成NaN,据说IE也有此问题,查找资料后修改如下。

通常,由于习惯了SQL中的datetime格式,日期是打成yyyy-mm-dd的格式,然而,safari竟然不支持这样的格式,所以当你输入如下语句时,会返回空的时间,invalid date。

var date = new Date("2016-11-11 11:11:11")

Safari支持的格式是yyyy/mm/dd这样的,差别主要在于短横-与斜杠/,而斜杠这样的格式在其他常见的浏览器中也都是可以正常运行的,所以只需要都换成斜杠就可以了,

转换函数: var date = new Date ("2016-04-17 11:11:11".replace(/-/g,'/'));

这样再进行 var timestamp = date.getTime();即可顺利求出时间戳

posted @ 2018-03-14 17:47  徐念念  阅读(1618)  评论(0编辑  收藏  举报