获取开始日期数组和结束日期数组之间的所有日期



我有两个数组,一个具有所有的开始日期(arrayStart),第二个具有所有的结束日期(arrayEnd)。我需要在开始和结束日期之间的所有日期。每个值都匹配两个数组(arrayStart[0]匹配arrayEnd[0],我怎么能做到这一点?

下面是我的代码:
try {
let res = await axios.get(`https://myseenapp.herokuapp.com/constructionSite/${_id}`);
let data = res.data;
setConstruction(data);
setStartDate(
data
.map(e => e.startDate)
.forEach((day) => {
let convert = day.split('-').reverse().join('-')
if (arrayStart.includes(convert) === false) {
arrayStart.push(convert)
}
}));
setEndDate(
data
.map(e => e.endDate)
.forEach((day) => {
let convert = day.split('-').reverse().join('-')
if (arrayEnd.includes(convert) === false) {
arrayEnd.push(convert)
}
})
);
const start = (item) => {
console.log(moment(item).format("YYYY-MM-DD"))
}
arrayStart.forEach(start);
const end = (item) => {
console.log(moment(item).format("YYYY-MM-DD"))
}

arrayEnd.forEach(end);
let s = start(item);
const getDaysBetweenDates = (start, end) => {
let now = start;
let dates = [];
while (now <= end){
dates.push(now.format("YYYY-MM-DD"));
now.add(1, 'days');
dates.forEach((day) => {
newDaysObject[day] = {
textColor: "white",
color: 'gold',
selected: true,
}
})
}
return dates;
}
let dateList = getDaysBetweenDates(start, end);
console.log(dateList)
}
catch (err) {
console.log(err)
}
};

使用getDates()获取日期数组b/w两个日期。代码链接

Date.prototype.addDays = function(days) {
var dat = new Date(this.valueOf())
dat.setDate(dat.getDate() + days);
return dat;
}
function getDates(startDate, stopDate) {
var dateArray = new Array();
var currentDate = startDate;
while (currentDate <= stopDate) {
dateArray.push(currentDate)
currentDate = currentDate.addDays(1);
}
return dateArray;
}
var dateArray = getDates(new Date(), (new Date()).addDays(10));

最新更新