如下代码:

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

我了解“月份从1月0到12月11日开始”,因此new Date(2013,12,31)应该是2014年1月31日

最佳答案

您已将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);

09-12 10:55