2012-09-01 48 views
0

可能重複:
Creating date with numbers (new Date(2012, 03, …) gives wrong month (+1)日期對象在JavaScript中沒有返回正確的日期值

我有這樣的功能:

function myFunction(){ 
var d = new Date(2012,9,1); 
var x = document.getElementById("demo");//some element demo 

x.innerHTML=d.getDay(); 

} 

我想在拿到平日任何月份的1日期。代碼在上面(一個例子)。 這是不是應該返回一個星期六是它的價值?它沒有給出正確的價值。它在這種情況下給出1。它看起來很簡單,但我錯過了一些東西。 我誤解了方程?

請告訴。

一些編輯:雖然它有點不同,但它仍然在同一行。

function myFunction() 
{ 

for(i=0;i<12;i++){ 

    var d = new Date(2012,i,0); 

    k=i+1; 

    var x = document.getElementById(""+k); 

    x.innerHTML=d.getDate()+" "+i; 


    } 

} 

此函數將特定的id 12總數寫入no。我得到以下輸出:

31 0 

31 1 

29 2 

31 3 

30 4 

31 5 

30 6 

31 7 

31 8 

30 9 

31 10 

30 11 

這是不正確的。

上面的函數產生了幾個月和相應的日子。

+0

[用數字創建日期(新日期(2012,03,...)給出錯誤的月份(+1)]的可能的重複(http://stackoverflow.com/questions/10649036/creating-date-with-numbers -new-date2012-03-given-wrong-month-1)和[javascript日期創建,無法設置正確的月份](http://stackoverflow.com/questions/6913035/javascript-date-creation-cant-設置最正確個月)。 –

回答

1

您忘記了在創建新的Date對象時,month參數取0-11之間的數字。 9月是8.嘗試將其更改爲8,並且您的一天將返回6,即星期六。

你糾正代碼:

function myFunction(){ 
var d = new Date(2012,8,1); 
var x = document.getElementById("demo");//some element demo 

x.innerHTML=d.getDay(); 

} 

Demo

+0

該死的。有時候事情太亂了,以至於找不到一個簡單的問題。感謝您的回答。 –

+0

@ashishdabral當然。確保您通過點擊旁邊的勾號接受您的問題的答案。 –

+0

嗨,還有一件事:如果我使用d = new Date(2012,8,0);極限= d.getDate();它不應該返回不。本月的天數,即30天爲什麼會返回31? –

0

我知道你可以使用長時間戳創建日期。

有時候它會發生,你導入了錯誤的日期 - 你需要Utils.Date而不是SQL.Date - 也檢查這個!

1

我得到了罪魁禍首:

在Javascript中一個月被視爲一個數組,從0

所以開始的9月,應該是

var d = new Date(2012,8,1); and not 9 
相關問題