The format()
method of Intl.DurationFormat
instances formats a duration according to the locale and formatting options of this Intl.DurationFormat
object.
Intl.DurationFormat.prototype.format()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Syntax
format(duration)
Parameters
duration
-
The duration object to be formatted. It should include some or all of the following properties:
years
,months
,weeks
,days
,hours
,minutes
,seconds
,milliseconds
,microseconds
,nanoseconds
. Can be aTemporal.Duration
object.
Return value
A string representing the given duration
formatted according to the locale and formatting options of this Intl.DurationFormat
object.
Note: Most of the time, the formatting returned by format()
is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of format()
to hardcoded constants.
Examples
Using format()
The following example shows how to create a Duration formatter using the English language.
const duration = { years: 1, months: 2, weeks: 3, days: 3, hours: 4, minutes: 5, seconds: 6, milliseconds: 7, microseconds: 8, nanoseconds: 9, }; // Without options, style defaults to "short" new Intl.DurationFormat("en").format(duration); // "1 yr, 2 mths, 3 wks, 3 days, 4 hr, 5 min, 6 sec, 7 ms, 8 μs, 9 ns" // With style set to "long" new Intl.DurationFormat("en", { style: "long" }).format(duration); // "1 year, 2 months, 3 weeks, 3 days, 4 hours, 5 minutes, 6 seconds, 7 milliseconds, 8 microseconds, 9 nanoseconds" // With style set to "narrow" new Intl.DurationFormat("en", { style: "narrow" }).format(duration); // "1y 2mo 3w 3d 4h 5m 6s 7ms 8μs 9ns"
Using format() with different locales and styles
const duration = { hours: 1, minutes: 46, seconds: 40, }; // With style set to "long" and locale "fr-FR" new Intl.DurationFormat("fr-FR", { style: "long" }).format(duration); // "1 heure, 46 minutes et 40 secondes" // With style set to "short" and locale set to "en" new Intl.DurationFormat("en", { style: "short" }).format(duration); // "1 hr, 46 min and 40 sec" // With style set to "short" and locale set to "pt" new Intl.DurationFormat("pt", { style: "narrow" }).format(duration); // "1h 46min 40s" // With style set to "digital" and locale set to "en" new Intl.DurationFormat("en", { style: "digital" }).format(duration); // "1:46:40" // With style set to "digital", locale set to "en", and hours set to "long" new Intl.DurationFormat("en", { style: "digital", hours: "long" }).format( duration, ); // "1 hour, 46:40"
Using format() with the fractionalDigits option
const duration = { hours: 11, minutes: 30, seconds: 12, milliseconds: 345, microseconds: 600, }; new Intl.DurationFormat("en", { style: "digital" }).format(duration); // "11:30:12.3456" new Intl.DurationFormat("en", { style: "digital", fractionalDigits: 5 }).format( duration, ); // "11:30:12.34560" new Intl.DurationFormat("en", { style: "digital", fractionalDigits: 3 }).format( duration, ); // "11:30:12.346"
Specifications
Browser compatibility
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | Deno | Node.js | |
format |
129 | 129 | preview | 115 | 16.4 | 129 | No | 86 | 16.4 | No | 129 | No | No |
See also
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DurationFormat/format