Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript循环中输出从今天到特定天数的日期_Javascript_Date - Fatal编程技术网

在JavaScript循环中输出从今天到特定天数的日期

在JavaScript循环中输出从今天到特定天数的日期,javascript,date,Javascript,Date,在开始之前,让我先说说我有多讨厌JavaScriptDate()对象!我真的很讨厌它,我通常会使用date.js之类的库,但是我必须使用自己的JavaScript来解决这个问题 好的,我想创建一个从今天到特定日期或特定天数的日期数组。。。在本例中,我将设置特定天数(如365天)。稍后,我将使用此数组在应用程序中填充select 我希望捕获今天的日期,然后向其中添加一个整数以获得下一个日期,然后是下一个日期,等等。。。并将这些日期格式化为dd/mm/yyyy(我没有包括这部分) 这是我的代码,我注

在开始之前,让我先说说我有多讨厌JavaScript
Date()
对象!我真的很讨厌它,我通常会使用date.js之类的库,但是我必须使用自己的JavaScript来解决这个问题

好的,我想创建一个从今天到特定日期或特定天数的日期数组。。。在本例中,我将设置特定天数(如365天)。稍后,我将使用此数组在应用程序中填充select

我希望捕获今天的日期,然后向其中添加一个整数以获得下一个日期,然后是下一个日期,等等。。。并将这些日期格式化为dd/mm/yyyy(我没有包括这部分)

这是我的代码,我注意到我的循环在第二个索引/循环后几天开始跳转/错过

 var today = new Date(),
     dd = today.getDate(),
     mm = today.getMonth() + 1,
     yyyy = today.getFullYear(),
     today,
     startDate,
     d,
     i,
     dateArray = [];

    if( dd < 10 ){
        dd='0' + dd
    } 

    if( mm < 10 ){
        mm='0' + mm
    }

    startDate = yyyy +'-'+ mm +'-' + dd;
    d = new Date(startDate)

    for(i = 0; i < 365; i++){
        d.setDate(d.getDate() + i);
            // I will format 'd' to dd/mm/yyyy later
            dateArray.push(d)
        console.log(d);
    }
我显然是走错了路。有人能告诉我如何正确使用Date()对象,以及我的循环哪里出了问题吗


提前感谢

由于您的循环,您将在
d
中添加1、2和3。如果希望它们是连续的,可以将
+i
更改为
+1
,如:

for(i = 0; i < 365; i++){
    d.setDate(d.getDate() + 1);
    // I will format 'd' to dd/mm/yyyy later
    dateArray.push(d)
    console.log(d);
}
(i=0;i<365;i++)的
{
d、 设置日期(d.getDate()+1);
//我将在以后将“d”格式化为dd/mm/yyyy
dateArray.push(d)
控制台日志(d);
}

由于您的循环,您将在
d
中添加1、2和3。如果希望它们是连续的,可以将
+i
更改为
+1
,如:

for(i = 0; i < 365; i++){
    d.setDate(d.getDate() + 1);
    // I will format 'd' to dd/mm/yyyy later
    dateArray.push(d)
    console.log(d);
}
(i=0;i<365;i++)的
{
d、 设置日期(d.getDate()+1);
//我将在以后将“d”格式化为dd/mm/yyyy
dateArray.push(d)
控制台日志(d);
}

由于您的循环,您将在
d
中添加1、2和3。如果希望它们是连续的,可以将
+i
更改为
+1
,如:

for(i = 0; i < 365; i++){
    d.setDate(d.getDate() + 1);
    // I will format 'd' to dd/mm/yyyy later
    dateArray.push(d)
    console.log(d);
}
(i=0;i<365;i++)的
{
d、 设置日期(d.getDate()+1);
//我将在以后将“d”格式化为dd/mm/yyyy
dateArray.push(d)
控制台日志(d);
}

由于您的循环,您将在
d
中添加1、2和3。如果希望它们是连续的,可以将
+i
更改为
+1
,如:

for(i = 0; i < 365; i++){
    d.setDate(d.getDate() + 1);
    // I will format 'd' to dd/mm/yyyy later
    dateArray.push(d)
    console.log(d);
}
(i=0;i<365;i++)的
{
d、 设置日期(d.getDate()+1);
//我将在以后将“d”格式化为dd/mm/yyyy
dateArray.push(d)
控制台日志(d);
}

您反复使用同一对象。以此为例:

  • 你从4月16日开始
  • 将1添加到4月16日,它将变为4月17日
  • 现在在日期上加上2,现在是4月17日,所以它变成了4月19日
  • 现在你在日期上加上3,现在是4月19日,所以它变成了4月22日
  • 你应该明白我在说什么。最后,您应该这样做:

    d = new Date(startDate)
    
    for(i = 0; i < 365; i++){
      c = new Date().setDate(d.getDate() + i);
      dateArray.push(c)
      console.log(c);
    }
    
    d=新日期(起始日期)
    对于(i=0;i<365;i++){
    c=新日期().setDate(d.getDate()+i);
    dateArray.push(c)
    控制台日志(c);
    }
    

    或者正如Tom Fenech所说,您可以将
    +1
    而不是
    +i
    添加到当前日期对象(
    d
    )。

    您正在反复使用同一对象。以此为例:

  • 你从4月16日开始
  • 将1添加到4月16日,它将变为4月17日
  • 现在在日期上加上2,现在是4月17日,所以它变成了4月19日
  • 现在你在日期上加上3,现在是4月19日,所以它变成了4月22日
  • 你应该明白我在说什么。最后,您应该这样做:

    d = new Date(startDate)
    
    for(i = 0; i < 365; i++){
      c = new Date().setDate(d.getDate() + i);
      dateArray.push(c)
      console.log(c);
    }
    
    d=新日期(起始日期)
    对于(i=0;i<365;i++){
    c=新日期().setDate(d.getDate()+i);
    dateArray.push(c)
    控制台日志(c);
    }
    

    或者正如Tom Fenech所说,您可以将
    +1
    而不是
    +i
    添加到当前日期对象(
    d
    )。

    您正在反复使用同一对象。以此为例:

  • 你从4月16日开始
  • 将1添加到4月16日,它将变为4月17日
  • 现在在日期上加上2,现在是4月17日,所以它变成了4月19日
  • 现在你在日期上加上3,现在是4月19日,所以它变成了4月22日
  • 你应该明白我在说什么。最后,您应该这样做:

    d = new Date(startDate)
    
    for(i = 0; i < 365; i++){
      c = new Date().setDate(d.getDate() + i);
      dateArray.push(c)
      console.log(c);
    }
    
    d=新日期(起始日期)
    对于(i=0;i<365;i++){
    c=新日期().setDate(d.getDate()+i);
    dateArray.push(c)
    控制台日志(c);
    }
    

    或者正如Tom Fenech所说,您可以将
    +1
    而不是
    +i
    添加到当前日期对象(
    d
    )。

    您正在反复使用同一对象。以此为例:

  • 你从4月16日开始
  • 将1添加到4月16日,它将变为4月17日
  • 现在在日期上加上2,现在是4月17日,所以它变成了4月19日
  • 现在你在日期上加上3,现在是4月19日,所以它变成了4月22日
  • 你应该明白我在说什么。最后,您应该这样做:

    d = new Date(startDate)
    
    for(i = 0; i < 365; i++){
      c = new Date().setDate(d.getDate() + i);
      dateArray.push(c)
      console.log(c);
    }
    
    d=新日期(起始日期)
    对于(i=0;i<365;i++){
    c=新日期().setDate(d.getDate()+i);
    dateArray.push(c)
    控制台日志(c);
    }
    
    或者正如Tom Fenech所说,您只需将
    +1
    而不是
    +i
    添加到当前日期对象(
    d