我有一個問題,我不知道什麼是錯的。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)。 –
此問題標題不可接受;請描述這個問題。 –