2014-01-17 76 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);