0

有谁知道为什么

new Date('2012','1','1')

返回 2012 年 2 月 1 日而不是 1 月 1 日?

new Date('2012','0','1')

将于 2012 年 1 月 1 日返回

这是奇怪的还是合乎逻辑的?

4

2 回答 2

6

因为这正是 ECMAscript 规范(第 3 版)第 15.9.1.4 节所说的应该发生的事情。0=1 月,1=2 月,... 11=12 月。

http://www.ecma-international.org/publications/standards/Ecma-262.htm

于 2012-10-20T21:18:32.687 回答
1

请花一些时间阅读下面的 JavaScript Dates 文档: https ://www.w3schools.com/js/js_dates.asp

它注意到:

JavaScript 从 0 到 11 计算月份。一月是 0。十二月是 11。

所以你得到的结果是绝对正确的。

于 2017-02-15T01:58:50.323 回答