The Intl.RelativeTimeFormat
object enables language-sensitive relative time formatting.
Intl.RelativeTimeFormat
Try it
Constructor
-
Intl.RelativeTimeFormat()
-
Creates a new
Intl.RelativeTimeFormat
object.
Static methods
-
Intl.RelativeTimeFormat.supportedLocalesOf()
-
Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.
Instance methods
-
Intl.RelativeTimeFormat.prototype.format()
-
Formats a
value
and aunit
according to the locale and formatting options of the givenIntl.RelativeTimeFormat
object. -
Intl.RelativeTimeFormat.prototype.formatToParts()
-
Returns an
Array
of objects representing the relative time format in parts that can be used for custom locale-aware formatting. -
Intl.RelativeTimeFormat.prototype.resolvedOptions()
-
Returns a new object with properties reflecting the locale and formatting options computed during initialization of the object.
Examples
Basic format usage
The following example shows how to use a relative time formatter for the English language.
// Create a relative time formatter in your locale // with default values explicitly passed in. const rtf = new Intl.RelativeTimeFormat("en", { localeMatcher: "best fit", // other values: "lookup" numeric: "always", // other values: "auto" style: "long", // other values: "short" or "narrow" }); // Format relative time using negative value (-1). rtf.format(-1, "day"); // > "1 day ago" // Format relative time using positive value (1). rtf.format(1, "day"); // > "in 1 day"
Using formatToParts
The following example shows how to create a relative time formatter returning formatted parts
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" }); // Format relative time using the day unit. rtf.formatToParts(-1, "day"); // > [{ type: "literal", value: "yesterday"}] rtf.formatToParts(100, "day"); // > [{ type: "literal", value: "in " }, // > { type: "integer", value: "100", unit: "day" }, // > { type: "literal", value: " days" }]
Specifications
Browser compatibility
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | Deno | Node.js | |
RelativeTimeFormat |
71
|
79
|
65
|
No
|
58
|
14
|
71
|
71
|
65
|
50
|
14
|
10.0
|
1.8
|
12.0.0
Before version 13.0.0, only the locale data for
en-US is available by default. See
the RelativeTimeFormat() constructor for more details.
|
RelativeTimeFormat |
71
|
79
|
65
|
No
|
58
|
14
|
71
|
71
|
65
|
50
|
14
|
10.0
|
1.8
|
13.0.0
12.0.0
Before version 13.0.0, only the locale data for
en-US is available by default. When other locales are specified, the
RelativeTimeFormat instance silently falls back to
en-US . To make full ICU (locale) data available before version 13, see
Node.js documentation on the --with-intl option and how to provide the data.
|
format |
71
|
79
|
65
|
No
|
58
|
14
|
71
|
71
|
65
|
50
|
14
|
10.0
|
1.8
|
12.0.0
Before version 13.0.0, only the locale data for
en-US is available by default. See
the RelativeTimeFormat() constructor for more details.
|
formatToParts |
71
|
79
|
70
|
No
|
58
|
14
|
71
|
71
|
79
|
50
|
14
|
10.0
|
1.8
|
12.0.0
Before version 13.0.0, only the locale data for
en-US is available by default. See
the RelativeTimeFormat() constructor for more details.
|
resolvedOptions |
71
|
79
|
65
|
No
|
58
|
14
|
71
|
71
|
65
|
50
|
14
|
10.0
|
1.8
|
12.0.0
Before version 13.0.0, only the locale data for
en-US is available by default. See
the RelativeTimeFormat() constructor for more details.
|
supportedLocalesOf |
71
|
79
|
65
|
No
|
58
|
14
|
71
|
71
|
65
|
50
|
14
|
10.0
|
1.8
|
13.0.0
12.0.0
Before version 13.0.0, only the locale data for
en-US is available by default. To make full ICU (locale) data available before version 13, see
Node.js documentation on the --with-intl option and how to provide the data.
|
See also
© 2005–2022 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/RelativeTimeFormat