const intervals = [
{ start: '11:00:00', end: '13:00:00' },
{ start: '15:00:00', end: '17:00:00' }
]
const findIntersection = (intervals, start, end) =>
intervals.find(
interval => start < interval.end && interval.start < end
)
findIntersection(intervals, '09:00:00', '11:00:00')
// undefined
findIntersection(intervals, '09:00:00', '12:00:00')
// Object { start: "11:00:00", end: "13:00:00" }
if start1 <= finish2 and start2 <= finish1 then пересечение_есть else пересечения_нет
Возможно, знак равенства надо убрать - в зависимости, засчитывается ли пересечение интервалов в одной точке.