我觉得我有一些关于此事的遗漏,我试图在当前日期增加7天,然后是14天,然后是21天。我最终得到的是间隔而不是当前的复合日期+7,然后是当前日期+ 14等。
var date = new Date();
for(var i = 0; i < 4; i++){
var tempDate = date;
var repeatson = tempDate.setDate(date.getDate() + (i*7));
var repeats = new Date(repeatson);
console.log(repeats);
}
结果:
"2015-03-17T21:03:13.326Z"
"2015-03-24T21:03:13.326Z"
"2015-04-07T20:03:13.326Z"
"2015-04-28T20:03:13.326Z"
而不是所希望的,24日,31日&amp;第八
答案 0 :(得分:2)
var tempDate = date;
只需将引用分配给date
即可。您没有创建副本。同样,setDate
不会返回新日期,它会改变日期本身。
一种解决方案是创建副本:
var tempDate = new Date(date);
你的循环可以简化为
var repeats = (new Date(date)).setDate(date.getDate() + (i*7))