javascript new Date(2015,01,29) returns 完全错误的日期

javascript new Date(2015,01,29) returns completely wrong date

我是 运行 FireFox 控制台上的这个 Javascript 代码:

> new Date(2015,01,29)
< Date 2015-03-01T03:00:00.000Z

我创建了一个日期为“2015-01-29”的新日期对象,而该对象保存的日期为“2015-03-01”。

如果我更改 'hour':

也会发生这种情况
> new Date(2015,01,29,12)
< Date 2015-03-01T15:00:00.000Z

这是怎么回事?我对此完全迷失了。

如何解决此问题 'bug'?

感谢您的帮助!

新日期('2015,01,29')与新日期(2015,01,29)

您没有将日期输入用作字符串。

字符串格式使用您在现实生活中使用的月份:01 - 1 月。 数字格式将月份视为索引 0 - 一月。

因为月份值以 0(零)开头 new Date(2015,01,29) 将是 2 月 29 日,这是不可能的。

所以对于 2015-01-29,使用 0 作为月份参数

new Date(2015,0,29)

MDN