JS 指定日期转换时间戳问题
本文写于 2015 年,距今已有 11 年,文中提及的技术方案与接口可能已经过时,请注意甄别参考。
今天踩到一个坑,之前写的一个倒计时效果,在 Chrome 里面正常后就没管了,后来测试告诉我,在 iPhone 上倒计时有问题,倒计时变成 NaN分NaN秒 了。
由于这是个 HTML5 的Web页面,是嵌入到 IOS 和 Android 的 APP 里面的,首先排查在 Android 上是好的,因为代码是同一套,出现 NaN 说明问题出在日期转换上。
继续排查,后端返回的数据 endTime 是一个字符串的时间 2015-07-08 23:59:59。
代码里面直接用了new Date(endTime).getTime() 转换时间戳,下了个 Safari浏览器,发现时间戳变成了 NaN,换成 IE 发现也有这个问题。
问题搞清楚了,就解决吧。
想着可能是时间格式问题,导致部分浏览器解析不了,将时间字符串的 - 改为了 / ,解析出来正常。
时间是后端取回来的,所以还需要自己替换一下。
关键代码:
var endTime = '2015-07-08 23:59:59';
endTime = endTime.replace(/\-/g, '/');
endTime = new Date(endTime).getTime();注意:指定一个具体的时间转换时间戳,需要 yyyy/mm/dd hh:ii:ss 格式,yyyy-mm-dd 在 IE 和 Safari 下是有问题的。
若有共鸣,不妨点个喜欢
本文地址:https://www.mingsixue.com/blog/detail/JS-date-getTime-ie-safari
文章若需转载,请附上原文链接,谢谢配合。^_^