我有一个React组件,其中有一个日期字符串,我需要根据该日期字符串生成一个表示未来11天(不包括开始日期)的日期数组(2016年10月12日)。不知道如何实现这一目标。到目前为止,这就是我尝试过的方法,但问题是,当一天的每次迭代简单地循环添加1时,当11天的日期范围介于两个月之间时,它将无法生成正确的日期:
addDays = () => {
const { startDate } = this.props.pageData.parcelDetails.parcelDetails;
const date = new Date(startDate);
let datesCollection = []
for (var i = 1; i < 12; i++) {
datesCollection.push(`${date.getDate() + i}/${date.getMonth() + 1}/${date.getFullYear()}`)
}
return datesCollection
}
上面的代码生成以下数组:
[
"11/12/2016",
"12/12/2016",
"13/12/2016",
"14/12/2016",
"15/12/2016",
"16/12/2016",
"17/12/2016",
"18/12/2016",
"19/11/2016",
"20/12/2016",
"21/12/2016"
]
如何生成正确的数组,以及每个月的正确日期?
答案 0 :(得分:0)
您可以尝试在每个循环中添加1天。
var dateuse = new Date();
dateuse.setDate(dateuse.getDate() + 1);
或者您可以尝试Moment.js
var today = moment();
var dateuse = moment(today).add(1, 'days');
答案 1 :(得分:0)
您可以简单地做到这一点:
addDays = () => {
const { startDate } = this.props.pageData.parcelDetails.parcelDetails;
const date = new Date(startDate);
let datesCollection = []
for (var i = 1; i < 12; i++) {
const newDate = new Date(date.getTime() + i * 1000 * 60 * 60 * 24);
datesCollection.push(`${newDate.getDate()}/${newDate.getMonth() + 1}/${newDate.getFullYear()}`);
}
return datesCollection
}