Skip to content

parseDuration

Playground

call
result 
parseDuration(value: string, options?: { smallestUnit?: Temporal.ToStringPrecisionOptions; fractionalSecondDigits?: Temporal.ToStringPrecisionOptions; roundingMode?: Temporal.ToStringPrecisionOptions; }): string
import { parseDuration } from "@northguild/gmt/duration/parse";

Parse and re-normalize an ISO 8601 duration string.

  • Uses Temporal.Duration.from to parse, then .toString() to re-emit.
  • smallestUnit, fractionalSecondDigits, and roundingMode control the precision/rounding of the re-emitted string, per Temporal’s ToStringPrecisionOptions.
  • Returns “” for invalid input.
Parameter Type Description
value string ISO 8601 duration string

options

Option Type Default
smallestUnit? Temporal.ToStringPrecisionOptions
fractionalSecondDigits? Temporal.ToStringPrecisionOptions
roundingMode? Temporal.ToStringPrecisionOptions

re-normalized ISO 8601 duration string, or “” on invalid input

parseDuration("P1DT2H30M") // "P1DT2H30M"
parseDuration("PT1.5S") // "PT1.5S"
parseDuration("PT1.5S", { smallestUnit: "second" }) // "PT1S"
parseDuration("PT1.5S", { fractionalSecondDigits: 3 }) // "PT1.500S"
parseDuration("invalid") // ""

duration/parse/parseDuration.ts