在IE中,如果你在控制台new Date("22/22/22")
中写字,你会得到 Mon Oct 22 00:00:00 CDT 1923的答案
在Chrome中,它显示无效日期。
这里发生了什么以及为什么?
答案 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引擎实现为无效值提供了不同的结果。