在循环中为日期添加天数,javascript

Adding days to a date in a loop, javascript

本文关键字:javascript 添加 日期 循环      更新时间:2023-09-26

我觉得我缺少了一些东西,我试图在当前日期上增加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&第8个

var tempDate = date;只是将引用分配给date。您没有创建副本。类似地,setDate不会返回新的日期,而是对日期本身进行变异。

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

var tempDate = new Date(date);

你的循环可以简化为

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