// 获取日期数组中最大的日期
getDateMax(dataArr) {
let max = dataArr[0];
for (let i = 1; i < dataArr.length; i++) {
if (Date.parse(dataArr[i]) > Date.parse(max)) {
max = dataArr[i]
}
}
return max
},
// 获取日期数组中最小的日期
getDateMin(dataArr) {
let min = dataArr[0];
for (let i = 1; i < dataArr.length; i++) {
if (Date.parse(dataArr[i]) < Date.parse(min)) {
min = dataArr[i]
}
}
return min
},
// 获取重叠日期函数
isDadeOverlap(startDateArr,endDateArr,valueDate){
let me = this;
let minD = me.getDateMin(startDateArr)
let maxD = me.getDateMax(endDateArr)
let dateRange = me.getAll(minD,maxD);
let sI = null
let sE = null
if(dateRange.indexOf(valueDate[0])!=-1){
sI = dateRange.indexOf(valueDate[0])
}
if(dateRange.indexOf(valueDate[1])!=-1){
sE = dateRange.indexOf(valueDate[1])
}
if( sI!==null && sE!==null ){
return me.getAll(dateRange[sI],dateRange[sE]).join(',')
}
if( sI!==null && sE === null ){
return me.getAll(dateRange[sI],dateRange[dateRange.length-1]).join(',')
}
if( sI === null && sE!==null ){
return me.getAll(dateRange[0],dateRange[sE]).join(',')
}
if(Date.parse(valueDate[0]) < Date.parse(minD) && Date.parse(valueDate[1]) > Date.parse(maxD)){
return dateRange.join(',')
}
return null
}
调用
let sd = ["2022-02-23","2022-02-24"]
let se = ["2022-03-31","2022-04-02"]
// 参数1:开始日期数组 参数2:结束日期数组 参数3:所选的值开始结束范围
let d = me.isDadeOverlap(sd,se,['2022-02-02','2022-04-04'])
console.log(d)