在前端开发中,判断两个时间段是否有交集是一个常见的需求。你可以通过比较时间段的开始和结束时间来确定它们是否重叠。以下是一个使用JavaScript编写的简单函数,用于判断两个时间段是否有交集:
function hasTimeOverlap(timeRange1, timeRange2) {// 假设 timeRange1 和 timeRange2 的格式是 { start: Date, end: Date }const { start: start1, end: end1 } = timeRange1;const { start: start2, end: end2 } = timeRange2;// 如果一个时间段的结束时间小于另一个时间段的开始时间,那么它们没有交集if (end1 < start2 || end2 < start1) {return false;}// 否则,它们有交集return true;
}// 示例用法:
const timeRange1 = { start: new Date('2023-04-01T09:00:00'), end: new Date('2023-04-01T12:00:00') };
const timeRange2 = { start: new Date('2023-04-01T11:00:00'), end: new Date('2023-04-01T14:00:00') };
const timeRange3 = { start: new Date('2023-04-01T15:00:00'), end: new Date('2023-04-01T18:00:00') };console.log(hasTimeOverlap(timeRange1, timeRange2)); // 输出: true
console.log(hasTimeOverlap(timeRange1, timeRange3)); // 输出: false
这个函数接受两个参数,每个参数都是一个包含 start
和 end
属性的对象,这两个属性都是 Date
对象。函数通过比较这些时间来确定两个时间段是否有交集,并返回一个布尔值。