Skip to content

overlaps

Checks whether two date ranges overlap.

Two ranges overlap when rangeA.start <= rangeB.end AND rangeB.start <= rangeA.end (inclusive on both ends). Returns false if any date is invalid.

Available since v2.0.0

import { overlaps } from '@helpers4/date';
// or, from the all-in-one package (same code, one install):
import { overlaps } from 'helpers4/date';
overlaps(rangeA: DateRange, rangeB: DateRange): boolean
ParameterTypeDescription
rangeADateRangeFirst date range
rangeBDateRangeSecond date range

boolean — true if the ranges share at least one point in time

overlaps(
  { start: '2025-01-01', end: '2025-06-30' },
  { start: '2025-03-01', end: '2025-12-31' }
) // => true

overlaps(
  { start: '2025-01-01', end: '2025-02-28' },
  { start: '2025-03-01', end: '2025-12-31' }
) // => false

A date range represented as a pair of date-like values.

interface DateRange {
  end: DateLike;
  start: DateLike;
}

View source on GitHub