Skip to content

intervalEngulfsDateTime

intervalEngulfsDateTime(aStart: string, aEnd: string, bStart: string, bEnd: string): boolean
import { intervalEngulfsDateTime } from "@northguild/gmt/plain/interval";

Return true when interval B is fully contained within interval A — every instant of B

  • falls within A.
  • Uses Temporal.PlainDateTime.compare for comparison.
  • Equivalent to 4-argument intervalContainsDateTime(aStart, aEnd, bStart, bEnd).
  • Returns false if either interval is invalid (start > end).
  • Returns false on invalid input (wrong type, malformed strings).
Parameter Type Description
aStart string ISO 8601 datetime string for the outer interval start
aEnd string ISO 8601 datetime string for the outer interval end
bStart string ISO 8601 datetime string for the inner interval start
bEnd string ISO 8601 datetime string for the inner interval end

true if B is fully contained in A, or false on invalid input

intervalEngulfsDateTime("2024-01-01T09:00:00", "2024-12-31T17:00:00", "2024-06-01T12:00:00", "2024-07-01T13:00:00") // true
intervalEngulfsDateTime("2024-01-01T09:00:00", "2024-12-31T17:00:00", "2024-01-01T09:00:00", "2024-12-31T17:00:00") // true (equal intervals)
intervalEngulfsDateTime("2024-01-01T09:00:00", "2024-12-31T17:00:00", "2024-01-01T09:00:00", "2024-06-30T12:00:00") // true
intervalEngulfsDateTime("2024-06-01T12:00:00", "2024-07-01T13:00:00", "2024-01-01T09:00:00", "2024-12-31T17:00:00") // false
intervalEngulfsDateTime("invalid", "2024-12-31T17:00:00", "2024-06-01T12:00:00", "2024-07-01T13:00:00") // false

plain/interval/intervalEngulfsDateTime.ts