The Intl.RelativeTimeFormat
object enables language-sensitive relative time formatting.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Constructor
Intl.RelativeTimeFormat.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
Specification | Status | Comment |
---|---|---|
ECMAScript Internationalization API (ECMA-402) The definition of 'RelativeTimeFormat' in that specification. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RelativeTimeFormat | Chrome Full support 71 | Edge Full support 79 | Firefox Full support 65 | IE No support No | Opera Full support 58 | Safari No support No | WebView Android Full support 71 | Chrome Android Full support 71 | Firefox Android Full support 65 | Opera Android Full support 50 | Safari iOS No support No | Samsung Internet Android Full support 10.0 | nodejs
Full support
12.0.0
|
RelativeTimeFormat() constructor | Chrome Full support 71 | Edge Full support 79 | Firefox Full support 65 | IE No support No | Opera Full support 58 | Safari No support No | WebView Android Full support 71 | Chrome Android Full support 71 | Firefox Android Full support 65 | Opera Android Full support 50 | Safari iOS No support No | Samsung Internet Android Full support 10.0 | nodejs
Full support
13.0.0
|
format | Chrome Full support 71 | Edge Full support 79 | Firefox Full support 65 | IE No support No | Opera Full support 58 | Safari No support No | WebView Android Full support 71 | Chrome Android Full support 71 | Firefox Android Full support 65 | Opera Android Full support 50 | Safari iOS No support No | Samsung Internet Android Full support 10.0 | nodejs
Full support
12.0.0
|
formatToParts | Chrome Full support 71 | Edge Full support 79 | Firefox Full support 70 | IE No support No | Opera Full support 58 | Safari No support No | WebView Android Full support 71 | Chrome Android Full support 71 | Firefox Android No support No | Opera Android Full support 50 | Safari iOS No support No | Samsung Internet Android Full support 10.0 | nodejs
Full support
12.0.0
|
resolvedOptions | Chrome Full support 71 | Edge Full support 79 | Firefox Full support 65 | IE No support No | Opera Full support 58 | Safari No support No | WebView Android Full support 71 | Chrome Android Full support 71 | Firefox Android Full support 65 | Opera Android Full support 50 | Safari iOS No support No | Samsung Internet Android Full support 10.0 | nodejs
Full support
12.0.0
|
supportedLocalesOf | Chrome Full support 71 | Edge Full support 79 | Firefox Full support 65 | IE No support No | Opera Full support 58 | Safari No support No | WebView Android Full support 71 | Chrome Android Full support 71 | Firefox Android Full support 65 | Opera Android Full support 50 | Safari iOS No support No | Samsung Internet Android Full support 10.0 | nodejs
Full support
13.0.0
|
Legend
- Full support
- Full support
- No support
- No support
- See implementation notes.
- See implementation notes.