在循环中添加日期到日期,javascript

时间:2015-03-17 21:16:54

标签: javascript

我觉得我有一些关于此事的遗漏,我试图在当前日期增加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;第八

1 个答案:

答案 0 :(得分:2)

var tempDate = date;只需将引用分配给date即可。您没有创建副本。同样,setDate不会返回新日期,它会改变日期本身。

一种解决方案是创建副本:

var tempDate = new Date(date);

你的循环可以简化为

var repeats = (new Date(date)).setDate(date.getDate() + (i*7))