JS - 构造函数的日期问题

时间:2017-05-03 15:05:23

标签: javascript date

我有一个问题,我不知道出了什么问题。

new Date(2017,3,31).getDate() 返回1(如1.4。,而不是31.3。)

new Date(2017,3,30).getDate() 返回30(如30.3。),这是正确的。

我错过了什么吗?

2 个答案:

答案 0 :(得分:5)

JavaScript中的月份是从零开始的,因此Date(2017,3,31)实际上是4月31日,但它并不存在。所以你最终会在5月1日结束。

答案 1 :(得分:3)

你可能期望3月是3月,因为它是一年中的第三个月。

JavaScript月份从0开始:

0 - January
1 - February
2 - March
...

您正在尝试创建4月31日,但不存在。将其更改为:

new Date(2017, 2, 31).getDate(); // March 31st