方式一:直接自创一个方法来进行判断
//判断时间段之间是否有重叠
handleTimesQuan(timequan){
// 深拷贝
let [...dateCompared]=timequan
// 转换成时间戳
dateCompared.forEach((item,index)=>{
item.startTime=this.dateToTime(item.startTime)
item.endTime=this.dateToTime(item.endTime)
})
// 将时间段排序
dateCompared.sort(function(a,b){
return a.startTime-b.startTime
})
let repeatNum=0
for(var i=0;i<=dateCompared.length;i++){
if( dateCompared[i+1].startTime-dateCompared[i].endTime<=0){
repeatNum++
}
if(repeatNum>0) return true
}
// 将时间变成时间戳
dateToTime(time){
let dateTime=time.split(':')
let changeTime=new Date()
changeTime.setHours(dateTime[0])
changeTime.setMinutes(dateTime[1])
return changeTime.getTime()
},
},
方式2:利用form表单element-ui里的校验规则进行
for (let i = 0; i < time.length; i++) {
for(let j = 0; j < time.length; j++) {
if (j === i) continue
const freg = `'${time[i][0]}' < '${time[j][0]}' && '${time[i][1]}' >= '${time[j][0]}'`
const sreg = `'${time[i][0]}' <= '${time[j][1]}' && '${time[i][1]}' > '${time[j][1]}'`
console.log(freg);
console.log(sreg);
const first = eval(freg)
const sount = eval(sreg)
console.info(first, sount)
if (first || sount) {
callback(new Error('红包雨的时间有重叠'))
break;
}
}
if (isB) break;
}