intervalFromDurationUtc
Signature
Section titled “Signature”intervalFromDurationUtc(value: string, duration: string, anchor: "start" | "end", options?: { overflow?: "reject" | "constrain" | undefined; }): { start: string; end: string; } | nullConstruct a UTC interval from a single point plus an ISO 8601 duration, anchored at either end.
anchor: "start"treatsvalueas the interval start and addsdurationto get the end.anchor: "end"treatsvalueas the interval end and subtractsdurationto get the start.- Converts to
ZonedDateTime("UTC"), adds/subtracts the duration there, then converts back to an Instant — this is what lets calendar units (years/months/weeks/days) resolve without arelativeTo: unlike a bareTemporal.Instant, theZonedDateTimesupplies its own implicit reference point (mirrorsaddUtc). - A negative
duration(e.g."-P1D") can invert the computed span; returns null when that happens, mirroringintervalIntersectionUtc’sstart > endrejection. - Returns null on invalid input (unparseable
value, invalidduration, or ananchorother than"start"/"end").
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
value | string | ISO UTC datetime string (e.g. “2024-03-10T12:00:00Z”) |
duration | string | ISO 8601 duration string |
anchor | "start" | "end" | “start” | “end” — which endpoint value represents |
Options
Section titled “Options”options
How an out-of-range result is handled
| Option | Type | Default | Description |
|---|---|---|---|
overflow? | "reject" | "constrain" (Overflow) | "constrain", Temporal’s default. | What to do when the result is not a real date. "constrain" clamps it to the last valid day, so Jan 31 + 1 month is Feb 29/28 (TC39 Temporal); "reject" returns null. |
Returns
Section titled “Returns”{ start, end } with the constructed span (UTC Instant strings), or null on invalid input
Members
| Member | Type | Description |
|---|---|---|
start | string | The instant the interval begins at, as an ISO 8601 UTC string ending in Z. |
end | string | The first instant after the interval, in the same format as start. It is exclusive: the interval holds everything from start up to but not including this value. It can equal start, which makes the interval empty. |
Related types
Section titled “Related types”Examples
Section titled “Examples”import { intervalFromDurationUtc } from "@northguild/gmt/utc/interval";
intervalFromDurationUtc("2024-01-01T00:00:00Z", "P1D", "start") // { start: "2024-01-01T00:00:00Z", end: "2024-01-02T00:00:00Z" }