在IE瀏覽器,如果你在控制檯new Date("22/22/22")
寫你週一十月的答案22 00:00:00 CDT 1923年IE VS Chrome的新日期( 「22/22/22」)
在Chrome中它說無效日期。
這裏發生了什麼,爲什麼?
在IE瀏覽器,如果你在控制檯new Date("22/22/22")
寫你週一十月的答案22 00:00:00 CDT 1923年IE VS Chrome的新日期( 「22/22/22」)
在Chrome中它說無效日期。
這裏發生了什麼,爲什麼?
這裏發生了什麼,爲什麼?
發生什麼事情是你遇到無證行爲。 Date
構造函數需要支持的唯一字符串格式是the specification中的ISO-8601簡化,這與您的示例不匹配。其他所有內容都沒有記錄,JavaScript引擎可以自由地做任何他們想做的事情,包括猜測你給予他們的格式(並且當你像'月份數字'之類的值出界時做JavaScript的漂亮翻轉),或者給你一個無效的日期。
如果您對翻轉感興趣,IE會將其視爲1922年第22個月的第22天。當然,年份沒有22個月,但JavaScript的Date
定義爲處理各個領域的翻轉,如月份數,優雅。因此,1922年的第22個月實際上是1923年的第10個月,當然,你是在它的第22天:1923年10月22日。
IE 11和Firefox 42將月份的值22轉換爲12 +10。 Chromium會引發錯誤。
不同的JS引擎實現爲無效值提供了不同的結果。
[當給定任何不符合日期時間字符串格式的字符串值時,Date.parse生成的值與實現有關](http://www.ecma-international.org/ecma-262/6.0/ #仲丁基date.parse)。所以有點文件證明它是無證的。我不會依賴於依賴實現的實現lol –
@Austin:是的,它被記錄爲無證。 :-) –
@ T.J.Crowder謝謝你的回答。 – Sehab