想把选中的日期遍历出来,发现每次选中后不是对应的日期,遍历出来的日期也是不正确的
//组件
`
<RangePicker separator={'至'} onOpenChange={this.openDateRangePicker}
onChange={this.onChangeDate}/>
`
//选择日期
`
onChangeDate = (e, str) => {
this.createScheduleData(e);
console.log(e, str);
};
`
//遍历
`
createScheduleData = (moment) => {
console.log(moment);
let date = 0;
let scheduleData = [];
if (moment.length > 0) {
let date1 = new Date(moment[0].format('YYYY,MM,DD'));
let date2 = new Date(moment[1].format('YYYY,MM,DD'));
date = (date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24);
for (let i = 0; i < date; i++) {
let dateStr = moment[0].subtract(i, 'days').format('YYYY/MM/DD');
let myDate = new Date(Date.parse(dateStr));
scheduleData.push({
id: i ,
date: dateStr+ weekDay[myDate.getDay()], //这里出现的日期字符串不正确
});
}
this.setState({
scheduleData: scheduleData,
});
}
};
`
有可能是引用传递,你在计算日期的时候修改了你的moment,所以日期变了
我重新写了下
moment()
就是moment.js
库