← 返回博客列表

JS 指定日期转换时间戳问题

Vic.Wang2015/07/131855 阅读0 喜欢最近更新 2026/07/08 16:47:00

本文写于 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

分享:微博QQ空间X