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