在javascript中添加具有意外结果的日期

时间:2018-05-15 14:12:57

标签: javascript date date-manipulation

我试图循环并添加7天的日期,我不知道我哪里出错了。循环的第一次迭代后日期变得疯狂 我想要实现的是第二天1月1日是1月8日,然后是8月8日和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());
}

1 个答案:

答案 0 :(得分:1)

您目前只是将7天添加到开始日期,为了产生想要的结果,您应该做些什么:

&#13;
&#13;
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());
}
&#13;
&#13;
&#13;

每次都会增加开始时间,否则您只需要在开始时添加7天,这始终是相同的日期。

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

&#13;
&#13;
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());
}
&#13;
&#13;
&#13;