js检验时间段是否有重合
时间: 2024-02-03 10:04:28 浏览: 117
好的,我会尽力回答你的问题。对于判断两个时间段是否有重合,可以采用以下的逻辑:
1. 假设有两个时间段 A 和 B,其中 A 的开始时间为 a_start,结束时间为 a_end;B 的开始时间为 b_start,结束时间为 b_end。
2. 如果 A 和 B 的结束时间都小于对方的开始时间,那么它们一定没有重合,因为 A 和 B 的时间范围完全没有重叠部分。
3. 如果 A 和 B 的开始时间都大于对方的结束时间,那么它们也一定没有重合,因为 A 和 B 的时间范围完全没有重叠部分。
4. 如果 A 的开始时间小于等于 B 的结束时间,且 A 的结束时间大于等于 B 的开始时间,那么它们就有重合。
5. 如果 B 的开始时间小于等于 A 的结束时间,且 B 的结束时间大于等于 A 的开始时间,同样也表示它们有重合。
6. 其它情况可以认为是无效输入或者是不合理的时间范围。
以上就是判断两个时间段是否有重合的算法逻辑,你可以根据自己的需要来实现对应的代码。希望对你有所帮助!
相关问题
js检验时间段是否有重合的代码
可以参考以下代码实现时间段的重合检验:
```javascript
function checkOverlap(start1, end1, start2, end2) {
// 判断时间段是否有重合
return (
(start1 <= end2 && end1 >= start2) || (start2 <= end1 && end2 >= start1)
);
}
// 示例
const start1 = new Date('2022-01-01T09:00:00');
const end1 = new Date('2022-01-01T12:00:00');
const start2 = new Date('2022-01-01T11:00:00');
const end2 = new Date('2022-01-01T14:00:00');
const overlap = checkOverlap(start1, end1, start2, end2);
console.log(overlap); // 输出 true
```
该函数接受 4 个参数:两个时间段的起始时间和结束时间,返回 boolean 类型,表示两个时间段是否重合。
阅读全文