使用2020-3-22构造出来的Date比2020-03-22构造出来的Date慢了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]);
}
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
根据规范 http://www.ecma-international... 日期格式为
YYYY-MM-DDTHH:mm:ss.sssZ
.月份的表示为:
01
-12
。一个解析为了 UTC 时间,一个解析为了本地时间,差了 8 个时区。
MDN 的文档也指出了,不推荐使用这种方式来解析时间。