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

今天踩到一个坑,一个日期效果,在 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发现也有这个问题。

问题搞清楚了,就解决吧。

想着可能是时间格式问题,导致部分浏览器解析不了,将时间字符串的-改为了/,解析出来正常。

时间是后端取回来的,所以还需要自己替换一下。

关键代码:

1
2
3
4
5
  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下是有问题的。

虚拟主机
《JavaScript基础教程(第8版)》PDF
《锋利的jQuery(第2版)》PDF
《HTML5从入门到精通》PDF
《JavaScript设计模式与开发实践 》PDF
广告也精彩