我有一个问题,我不知道什么是错的。JS - 日期问题与构造函数
new Date(2017,3,31).getDate()
返回1
(如1.4,不31.3。)
new Date(2017,3,30).getDate()
返回30(如30.3。),这是正确的。
我错过了什么吗?
我有一个问题,我不知道什么是错的。JS - 日期问题与构造函数
new Date(2017,3,31).getDate()
返回1
(如1.4,不31.3。)
new Date(2017,3,30).getDate()
返回30(如30.3。),这是正确的。
我错过了什么吗?
您可能预期3将是3月份,因为这是今年的第三个月。
的JavaScript个月从0开始:
0 - January
1 - February
2 - March
...
您要创建四月31日不存在。将其更改为:
new Date(2017, 2, 31).getDate(); // March 31st
ohhh我很笨拙:D 谢谢 –
@OndraPernica嗯,我认为这个构造函数是含糊不清的,你不是第一个犯这个错误的...... :) – Mistalis
它太诱人了。天数从1开始,在0 ..个月..但不好记住,从现在开始 –
JavaScript中的月份基于零,所以Date(2017,3,31)
实际上是4月31日,这是不存在的。所以你最终会选择5月1日。
5月如何“结束”?我认为编辑没有意义 – Hydro
@Matheus - JavaScript说嘿,没有4月31日,所以这里是正确的一天。正如[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)所示:“如果值大于它们的逻辑范围(例如,13提供为(2013,13,1)相当于新的日期(2014,1,1),都会创建2014-02-01的日期(注意这个月是从0开始的)。“_ – j08691
aaahh一想到它不是以索引(零)为基础的..我怎么会想念那个? :D 谢谢 –
月开始与'0'为'January',并用'11'的'December'结束[MDN:日期(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date) –
'3'是四月,并且没有四月三十一号。请务必阅读[MDN文档](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)。 –
此问题标题不可接受;请描述这个问题。 –