javascript - JS字符串转时间戳相差8个小时问题
怪我咯
怪我咯 2017-05-19 10:18:39
0
3
788

var time = new Date('2014-07-03'); //Thu Jul 03 2014 08:00:00 GMT+0800 (中国标准时间)
Date.parse(time); //1404345600000


var time = new Date('2014-7-3'); //Thu Jul 03 2014 00:00:00 GMT+0800 (中国标准时间)
Date.parse(time); //1404316800000


补全0之后咋就多了8小时呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
黄舟

根据 ECMA-262 ed 3,对时间的解析可能有不同处理方式。

在 ES5 中,对 ISO 8601 格式的字符串,如果没有指定时区,则解析为 UTC,对非 ISO 8601 的处理没有统一行为。

在 ES2015 中,对没有指定时区的字符串解析为当地时间(根据系统时间)。

如果你希望把所有这种形式的字符串都处理为当地时间,可以自己写个函数:

function parseISOLocal (s) {
  var b = s.split(/\D/);
  return new Date(b[0], b[1]-1, b[2]);
}
某草草

前段时间也看到过这个问题。

如果将日期格式换成“2014/07/02”,则正常换算成0点。

参考:轩枫阁 http://www.xuanfengge.com/js-...

小葫芦

在火狐下是正常的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板