2014-01-17 104 views
3

下面的代碼:javascript日期說明

//var d = new Date(year, month, day, hours, minutes, seconds, milliseconds); 
var today = new Date(2013,0,31); 
var tomorrow = new Date(); 
tomorrow.setDate(today.getDate() + 1); 
alert("New date is "+tomorrow.getFullYear() +", "+ tomorrow.getMonth()+", "+ tomorrow.getDate()) 

...輸出:2014, 1, 1

(演示:http://jsfiddle.net/3pA3Q/5/

任何人都可以解釋一下嗎?

而且,這兩個具有相同的結果:

var today = new Date(2013,11,31); 
var today = new Date(2013,12,31); 

我明白了「月以0開頭的1月至11月」,所以new Date(2013,12,31)應2014年一年,一月,31日

+0

請直接包括代碼在你的問題,不依靠外部鏈接網站(我已經編輯它在你)。你所說的兩條線具有「相同的結果」,爲兩個不同的日期創建日期對象,但是其他代碼使用'today.getDate()',它只檢索日期的月份部分的日期,_will_是相同... – nnnnnn

+0

@nnnnnn是的,我雙測試。這是「2014,1,1」。 –

+0

「明天」日期的結束方式相同,因爲您僅使用「今天」日期的月份中的某一天。 – nnnnnn

回答

3

你初始化爲tomorrow爲今天的日期,所以在這一行tomorrow.setDate(today.getDate() + 1);你簡單地加1天到今天的日期。

你會過得更好的克隆日期:

var today = new Date(2013,0,31); 
var tomorrow = new Date(today.getTime()); // Get a copy 
tomorrow.setDate(tomorrow.getDate() + 1);