Temporal.Duration.prototype.toString()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The toString()
method of Temporal.Duration
instances returns a string representing this duration in the ISO 8601 format.
Syntax
toString()
toString(options)
Parameters
options
Optional-
An object containing some or all of the following properties (in the order they are retrieved and validated):
fractionalSecondDigits
Optional-
Either an integer from 0 to 9, or the string
"auto"
. The default is"auto"
. If"auto"
, then trailing zeros are removed from the fractional seconds. Otherwise, the fractional part of the second component contains this many digits, padded with zeros or rounded as necessary. roundingMode
Optional-
A string specifying how to round off fractional second digits beyond
fractionalSecondDigits
. SeeIntl.NumberFormat()
. Defaults to"trunc"
. smallestUnit
Optional-
A string specifying the smallest unit to include in the output. Possible values are
"second"
,"millisecond"
,"microsecond"
, and"nanosecond"
, or their plural forms, which are equivalent tofractionalSecondDigits
values of0
,3
,6
,9
, respectively. If specified, thenfractionalSecondDigits
is ignored.
Return value
A string representing the given duration in the ISO 8601 format, with subsecond components formatted according to the options. The zero duration is represented as "PT0S"
.
Exceptions
RangeError
-
Thrown if any of the options is invalid.
Examples
Using toString()
const duration = Temporal.Duration.from({ hours: 1, minutes: 30, seconds: 15 });
console.log(duration.toString()); // 'PT1H30M15S'
// Stringification implicitly calls toString()
console.log(`${duration}`); // 'PT1H30M15S'
Using options
const worldRecord = Temporal.Duration.from({ seconds: 9, milliseconds: 580 });
console.log(worldRecord.toString()); // 'PT9.58S'
console.log(worldRecord.toString({ fractionalSecondDigits: 1 })); // 'PT9.5S'
console.log(worldRecord.toString({ fractionalSecondDigits: 0 })); // 'PT9S'
console.log(worldRecord.toString({ smallestUnit: "millisecond" })); // 'PT9.580S'
console.log(
worldRecord.toString({
fractionalSecondDigits: 1,
roundingMode: "halfExpand",
}),
); // 'PT9.6S'
Specifications
Specification |
---|
Temporal proposal # sec-temporal.duration.prototype.tostring |
Browser compatibility
BCD tables only load in the browser