new Date('2016-02-06')
Date 2016-02-06T00:00:00.000Z
和 Chrome 中的:
new Date('2016-02-06')
Sat Feb 06 2016 08:00:00 GMT+0800 (CST)
结果是一样的,Firefox 中显示时以 Z 结束,时区是 UTC/GMT,而 Chrome 中显示的是 CST 就是 UTC+8。
关于 Chrome 为什么那么宽容,就是两个 JavaScript 引擎具体实现的问题。根据规范,当 Date 的参数是字符串时,应该符合 RFC 2822/ISO 8601/ECMA 262,对于不符合的,Firefox 报错,Chrome 则有自己的一套逻辑尽可能不出错。StackOverflow 上有个有趣的问题 is there any workaround for broken v8 date parser? 回答中有人引用了 V8 的源码,可以看到 V8 确实工作的方式有所不同。
Firefox 中,
和 Chrome 中的:
结果是一样的,Firefox 中显示时以
Z
结束,时区是 UTC/GMT,而 Chrome 中显示的是 CST 就是 UTC+8。关于 Chrome 为什么那么宽容,就是两个 JavaScript 引擎具体实现的问题。根据规范,当 Date 的参数是字符串时,应该符合 RFC 2822/ISO 8601/ECMA 262,对于不符合的,Firefox 报错,Chrome 则有自己的一套逻辑尽可能不出错。StackOverflow 上有个有趣的问题 is there any workaround for broken v8 date parser? 回答中有人引用了 V8 的源码,可以看到 V8 确实工作的方式有所不同。