Skip to content

intervalContainsDateTime

intervalContainsDateTime(intervalStart: string, intervalEnd: string, pointOrStart: string, pointEnd?: string): boolean
import { intervalContainsDateTime } from "@northguild/gmt/plain/interval";

Return true when pointOrStart falls within the interval [intervalStart, intervalEnd]

  • (3-arg), or when the inner interval [innerStart, innerEnd] is fully contained within the outer interval [intervalStart, intervalEnd] (4-arg).
  • Uses Temporal.PlainDateTime.compare for comparison.
  • Always-inclusive boundaries: start <= point <= end.
  • Returns false if intervalStart > intervalEnd (invalid outer interval).
  • Returns false if innerStart > innerEnd in 4-arg mode (invalid inner interval).
  • Returns false on invalid input (wrong type, malformed strings, leap seconds).
Parameter Type Description
intervalStart string ISO 8601 datetime string for the outer interval start
intervalEnd string ISO 8601 datetime string for the outer interval end
pointOrStart string ISO 8601 datetime string for the point (3-arg) or inner start (4-arg)
pointEnd string optional ISO 8601 datetime string for the inner interval end (4-arg mode)

true if the point or inner interval is contained, or false on invalid input

intervalContainsDateTime("2024-01-01T10:00:00", "2024-12-31T23:59:59", "2024-06-15T12:00:00") // true
intervalContainsDateTime("2024-01-01T10:00:00", "2024-12-31T23:59:59", "2024-06-15T12:00:00", "2024-07-15T12:00:00") // true
intervalContainsDateTime("2024-12-31T23:59:59", "2024-01-01T10:00:00", "2024-06-15T12:00:00") // false
intervalContainsDateTime("2024-01-01T10:00:00", "2024-12-31T23:59:59", "2024-06-15T12:00:00", "2024-06-10T12:00:00") // false
intervalContainsDateTime("invalid", "2024-12-31T23:59:59", "2024-06-15T12:00:00") // false

plain/interval/intervalContainsDateTime.ts