isValidZonedInterval
Signature
Section titled “Signature”isValidZonedInterval(start: string, end: string): booleanimport { isValidZonedInterval } from "@northguild/gmt/zoned/interval";Return true if start and end form a valid zoned interval — both parseable as
- ISO ZonedDateTime strings and the instant at
startis <= the instant atend. - Both inputs must be valid ISO 8601 zoned datetime strings.
- Equal
start === endis valid. - Comparison is done by instant, so intervals spanning DST transitions are compared by absolute time.
- Rejects any
[u-ca=...]calendar annotation (E5 issue #78, decision of record D2) — seeisValidZonedDateTime’s JSDoc for why. - Invalid input, malformed strings, or leap-second strings return
false.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
start |
string |
ISO ZonedDateTime string (interval start) |
end |
string |
ISO ZonedDateTime string (interval end) |
Returns
Section titled “Returns”true if start and end form a valid zoned interval, or false on invalid input
Examples
Section titled “Examples”isValidZonedInterval("2024-01-01T10:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // trueisValidZonedInterval("2024-06-15T12:00:00-04:00[America/New_York]", "2024-06-15T12:00:00-04:00[America/New_York]") // trueisValidZonedInterval("2024-12-31T23:59:59+00:00[UTC]", "2024-01-01T10:00:00+00:00[UTC]") // falseisValidZonedInterval("2024-01-01T10:00:00+00:00[UTC][u-ca=hebrew]", "2024-12-31T23:59:59+00:00[UTC]") // false (calendar annotation rejected)isValidZonedInterval("invalid", "2024-12-31T23:59:59+00:00[UTC]") // false