需求:校验时间段区间是否有重叠,
思路:转为秒在进行比较
function getSecondNumber(time){
let hour=time.split(':')[0]
let min=time.split(':')[1]
let s=hour * 3600 + min * 60
return s
}
function isDateIntersection (start1,end1, start2, end2){
let startdate1=getSecondNumber(start1)
let enddate1=getSecondNumber(end1)
let startdate2=getSecondNumber(start2)
let enddate2=getSecondNumber(end2)
if (enddate2 <= startdate1 || enddate1 <= startdate2) {
console.log("1.没有重叠");
return false;
} else {
console.log("2.发生重叠");
return true
}
}
function checkTime(){
let arr = [["08:00", "8:30"],["09:00", "20:00"],["19:00", "22:00"]] //需要校验的时间列表数据
let flag = false
for (var i = 0; i < arr.length; i++) {
if (flag) break;
for (var j = 1 + i; j < arr.length; j++) {
if(isDateIntersection(arr[i][0],arr[i][1],arr[j][0],arr[j][1])){
flag = true;
break;
}
}
}
//返回最终结果 true 有重叠 false没有重叠
return flag
}