我觉得我在这方面遗漏了一些东西,我想在当前日期上加上 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;
只是将 reference 分配给 date
。您不是在创建副本。同样,setDate
不会返回新日期,它会改变日期本身。
一个解决方案是创建一个副本:
var tempDate = new Date(date);
你的循环可以简化为
var repeats = (new Date(date)).setDate(date.getDate() + (i*7))
关于javascript - 在循环中将日期添加到日期,javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29109876/