比如
(1)21:01 - 04:03和22:00 - 06:00重叠363分钟
(2)21:01 - 22:10和22:00 - 06:00重叠10分钟
(3)21:01 - 22:10和08:00 - 09:00重叠0分钟
可以使用以下JavaScript代码来判断两个时间段的重合时间:
function getOverlapInMinutes(start1, end1, start2, end2) {
// 将时间字符串转换为Date对象
const start1Date = new Date(`1970/01/01 ${start1}:00`);
const end1Date = new Date(`1970/01/01 ${end1}:00`);
const start2Date = new Date(`1970/01/01 ${start2}:00`);
const end2Date = new Date(`1970/01/01 ${end2}:00`);
// 找出两个时间段的交集
const overlapStart = start1Date > start2Date ? start1Date : start2Date;
const overlapEnd = end1Date < end2Date ? end1Date : end2Date;
// 计算交集的时长
const overlapInMs = overlapEnd - overlapStart;
const overlapInMinutes = Math.round(overlapInMs / 60000);
// 如果有交集,则返回交集时长,否则返回0
return overlapInMinutes > 0 ? overlapInMinutes : 0;
}
// 示例用法
console.log(getOverlapInMinutes("21:01", "04:03", "22:00", "06:00")); // 363
console.log(getOverlapInMinutes("21:01", "22:10", "22:00", "06:00")); // 10
console.log(getOverlapInMinutes("21:01", "22:10", "08:00", "09:00")); // 0
这个函数接收四个时间字符串参数,分别是两个时间段的起始时间和结束时间。首先,将这些字符串转换为Date对象,并找出两个时间段的交集的起始时间和结束时间。然后,计算交集的时长,并将其转换为分钟数返回。如果交集时长小于等于0,则返回0。