Skip to content

intervalContains

intervalContains(interval: Interval, isoString: string): boolean

Return true when an ISO 8601 instant string lies inside a half-open interval.

  • start ≤ t < end: start is inside, end is not.
  • Always false for an empty interval (start === end) — it contains no instant.
  • Compares instants: isoString may name a different zone from either endpoint.
  • The positional intervalContainsUtc, intervalContainsZoned (…) follow the same half-open rule and exclude end.
  • Returns false on invalid input — interval not an Interval, or isoString not an instant string (offset required, no leap second, no unknown critical annotation such as [!foo=bar]). Zone, calendar and elective annotations are ignored, as Temporal.Instant.from ignores them.
ParameterTypeDescription
intervalInterval{ start, end } record of ISO 8601 instant strings
isoStringstringISO 8601 instant string to test

true if the instant is inside the interval, or false on invalid input

import { intervalContains } from "@northguild/gmt/interval/compare";
intervalContains({ start: "2024-01-01T09:00:00Z", end: "2024-01-01T17:00:00Z" }, "2024-01-01T09:00:00Z") // true — start is inside
output 

interval/compare/intervalContains.ts