IE与Chrome新日期(“22/22/22”)

时间:2015-12-01 17:31:35

标签: google-chrome date internet-explorer

在IE中,如果你在控制台new Date("22/22/22")中写字,你会得到 Mon Oct 22 00:00:00 CDT 1923的答案

在Chrome中,它显示无效日期

这里发生了什么以及为什么?

2 个答案:

答案 0 :(得分:4)

  

这里发生了什么以及为什么?

发生了什么事情,你正在遇到无证件的行为。 Date构造函数需要支持的唯一字符串格式是the specification中的ISO-8601简化,您的示例不匹配。其他所有内容都没有记录,JavaScript引擎可以自由地做任何他们想做的事情,包括猜测你给他们的格式(以及当你采用类似月份数量的值时,进行JavaScript的精彩翻转) #39;超出范围),或者给你一个无效的日期。

如果你对翻滚感到好奇,那么IE将其视为1922年第22个月的第22天。当然,几年没有22个月,但JavaScript&#39 ; s Date被定义为在各个字段中处理翻转,例如月号,优雅地处理。因此,1922年的第22个月实际上是1923年的第10个月,当然,你是在第22天:1923年10月22日。

答案 1 :(得分:-1)

IE 11和Firefox 42将月份值22转换为12 + 10。 Chromium会抛出错误。

不同的JS引擎实现为无效值提供了不同的结果。