Javascript日期解释

Javascript日期解释,javascript,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.getMon

以下代码:

//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

(演示:)

有人能解释一下吗

此外,这两种方法具有相同的结果:

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

我理解“1月从0开始到12月11日的月份”,因此
新日期(2013,12,31)
应该是2014年1月31日您将
明天
初始化为今天的日期,所以在这一行中
明天.setDate(今天.getDate()+1)您只需在今天的日期上添加1天

你最好克隆你的约会对象:

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

请在您的问题中直接包含代码,不要依赖外部站点的链接(我已经为您编辑了它)。您所说的两行具有“相同的结果”为两个不同的日期创建了日期对象,但是您的其他代码使用了
today.getDate()
,它只检索日期的月份部分,这将是相同的…@nnnnnn是的,我进行了双重测试。这是同一个“2014,1,1”。明天的日期在两种情况下都是一样的,因为您只使用从今天开始的一个月中的一天。@nnnnnn我知道。但更奇怪的是,根据“同样,这两个有相同的结果:”我不确定你的意思是什么,但他们不会导致相同的价值。一个是2013年12月31日,另一个是2014年1月31日。