1

我正在尝试循环并在日期上增加 7 天,但我不确定我哪里出错了。在循环的第一次迭代之后,日期变得疯狂。
我想要实现的是第二天的 1 月 1 日是 1 月 8 日,然后是 1 月 8 日和 1 月 15 日等。它增加了一个月而不是 8 天。印刷

start day Mon, 01 Jan 2018 00:00:00 GMT
The next day is: Mon, 08 Jan 2018 00:00:00 GMT

start day Mon, 08 Jan 2018 00:00:00 GMT
The next day is:Thu, 08 Feb 2018 00:00:00 GMT

var start = new Date('2018-01-01');
var nextDay = new Date(start);

for (day = 1; day <= 5; day++) 
{
    console.log("start day "+nextDay.toUTCString());
    nextDay.setDate(start.getDate()+7);
    console.log("The next day is:"+nextDay.toUTCString());
}
4

1 回答 1

1

您目前只是总是在开始日期上增加 7 天,为了产生想要的结果,您应该做的是:

var start = new Date('2018-01-01');
var nextDay = new Date(start);

for (day = 1; day <= 5; day++) 
{
 console.log("start day "+nextDay.toUTCString());
 nextDay.setDate(start.getDate()+7);
 start.setDate(nextDay.getDate());
 console.log("The next day is:"+nextDay.toUTCString());
}

每次还要增加开始时间,否则您将始终在开始时间上增加 7 天,这始终是相同的日期。

我意识到这不是最好的编码方式,你不需要nextDay变量:

var start = new Date('2018-01-01');

for (day = 1; day <= 5; day++) 
{
 console.log("Start day "+start.toUTCString());
 start.setDate(start.getDate()+7);
 console.log("The next day is:"+start.toUTCString());
}

于 2018-05-15T14:22:41.030 回答