getDurationUnit
Signature
Section titled “Signature”getDurationUnit(value: string, unit: keyof DurationLike | DateTimeUnit): number | nullRead a single component out of an ISO 8601 duration string.
- Uses Temporal.Duration.from and reads the named field directly — this is the value as stored, not a converted total: getDurationUnit(“PT90M”, “hours”) is 0, because “PT90M” holds 90 in its minutes field and nothing in its hours field. Use
totalDurationfor a converted total. - Never needs
relativeTo: reading a field is not a unit conversion, so calendar units (years/months/weeks) work here even though they require an anchor intotalDuration. - Temporal balances fractional units at parse time, so getDurationUnit(“PT1.5H”, “minutes”) is 30 — the input’s own precision, not the caller’s spelling of it, decides the fields.
- A negative duration stores every field as negative, so this returns a negative number for each nonzero component of “-P1DT2H”, not just the leading one.
unitaccepts the plural or singular name ("hours"or"hour"), as Temporal does.- Returns null when
valueis not a valid duration string orunitis not a valid DateTimeDurationUnit.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
value | string | ISO 8601 duration string |
unit | keyof DurationLike | DateTimeUnit | DateTimeDurationUnit to read (“years” | “months” | “weeks” | “days” | “hours” | “minutes” | “seconds” | “milliseconds” | “microseconds” | “nanoseconds”, or the singular name) |
Returns
Section titled “Returns”the component’s value, or null on invalid input
Related types
Section titled “Related types”Examples
Section titled “Examples”import { getDurationUnit } from "@northguild/gmt/duration/calculate";
getDurationUnit("P1DT2H30M", "hours") // 2