为什么JavaScript:new Date(年,月,0).getDate()返回当月的天数?

时间:2017-04-03 10:49:57

标签: javascript date

我知道这个小的javascript代码var whatever = new Date(year, month, 0).getDate()会返回特定年份特定月份的天数。但我似乎不明白的是它背后的逻辑。

在我们提及年份和月份之后,零在做什么呢?请解释一下。

1 个答案:

答案 0 :(得分:1)

当参数超出范围时,将调整下一个较大的时间增量以使时间有效。所以:

> new Date(2016,2,1)
2016-03-01T08:00:00.000Z

因此,如果我们指定(2016,2,1),我们得到3/1。因此,如果我们指定(2016,2,0),我们将在此前一天,根据需要调整月份以获得有效的东西,即上个月的最后一天。

> new Date(2016,2,0)
2016-02-29T08:00:00.000Z