84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
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小時呢?
走同样的路,发现不同的人生
根据 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-...
在火狐下是正常的
根据 ECMA-262 ed 3,对时间的解析可能有不同处理方式。
在 ES5 中,对 ISO 8601 格式的字符串,如果没有指定时区,则解析为 UTC,对非 ISO 8601 的处理没有统一行为。
在 ES2015 中,对没有指定时区的字符串解析为当地时间(根据系统时间)。
如果你希望把所有这种形式的字符串都处理为当地时间,可以自己写个函数:
前段时间也看到过这个问题。
如果将日期格式换成“2014/07/02”,则正常换算成0点。
参考:轩枫阁 http://www.xuanfengge.com/js-...
在火狐下是正常的![](http://img.php.cn/upload/image/000/000/000/8edb6c40ad262a1211f69392bc24678d-0.png)