我不明白为什么这段代码不起作用。关于SO的解决方案提到做date.getDate()+1
应该增加一天,但在我的情况下,它会增加一个月和两天?
var year = 2014;
var month = 3;
var day = 31;
// creating an actual date
requestedDate = new Date(year, month - 1, day);
console.debug(requestedDate.toString());
// outputs "Mon Mar 31 2014 00:00:00 GMT+0200 (CEST)"
var d = new Date();
d.setDate(requestedDate.getDate()+1);
console.debug(d.toString());
// outputs "Fri May 02 2014 11:04:52 GMT+0200 (CEST)"
答案 0 :(得分:1)
您没有将第二个日期设置为与第一个日期相同。
在第一个new Date()
中,您将日期设置为31。3月
第二个new Date()
将日期设置为今天,1月1日
31 + 1 = 32
和1. 4月加32天应该是2. may。
var year = 2014;
var month = 3;
var day = 31;
// creating an actual date
requestedDate = new Date(year, month - 1, day);
console.debug(requestedDate.toString());
var d = new Date(year, month - 1, day); // set the date to the same
d.setDate(requestedDate.getDate()+1);
console.debug(d.toString());