Intl.DurationFormat.prototype.format()
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The format()
method of Intl.DurationFormat
instances formats a duration according to the locale and formatting options of this Intl.DurationFormat
object.
Syntax
js
format(duration)
Parameters
duration
-
The duration object to be formatted. It should include some or all of the following properties:
"months"
,"weeks"
,"days"
,"hours"
,"minutes"
,"seconds"
,"milliseconds"
,"microseconds"
,"nanoseconds"
.
Examples
Using format with an object as parameter
js
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
js
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"
Using format with fractionalDigits option
Use the format
getter function for formatting using with fractionalDigits options and setting milliseconds display to narrow
.
js
const duration = {
seconds: 12,
milliseconds: 345,
microseconds: 600,
};
// Example using fractionalDigits
new Intl.DurationFormat("en", { fractionalDigits: 2 }).format(duration);
// => 12 sec, 345 ms, 600 μs
// Example using fractionalDigits and milliseconds set to `long`
new Intl.DurationFormat("en", {
milliseconds: "long",
fractionalDigits: 2,
}).format(duration);
// => 12 sec, 345 milliseconds, 600 μs
Specifications
Specification |
---|
Intl.DurationFormat # sec-Intl.DurationFormat.prototype.format |
Browser compatibility
BCD tables only load in the browser