The Intl.RelativeTimeFormat()
constructor creates Intl.RelativeTimeFormat
objects.
Syntax
new Intl.RelativeTimeFormat([locales[, options]])
Parameters
locales
-
Optional. A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the
locales
argument, see the Intl page. options
- Optional. An object with some or all of the following properties:
localeMatcher
The locale matching algorithm to use. Possible values are"lookup"
and"best fit"
; the default is"best fit"
. For information about this option, seeIntl
.numeric
The format of output message. Possible values are:"always"
(default, e.g.,1 day ago
),- or
"auto"
(e.g.,yesterday
). The"auto"
value allows to not always have to use numeric values in the output.
style
The length of the internationalized message. Possible values are:"long"
(default, e.g.,in 1 month
)"short"
(e.g.,in 1 mo.
),- or
"narrow"
(e.g.,in 1 mo.
). The narrow style could be similar to the short style for some locales.
Examples
Basic format
usage
The following example shows how to create a relative time formatter using 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 the auto
option
If numeric:auto
option is passed, it will produce the string yesterday
or tomorrow
instead of 1 day ago
or in 1 day
. This allows to not always have to use numeric values in the output.
// Create a relative time formatter in your locale // with numeric: "auto" option value passed in. const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" }); // Format relative time using negative value (-1). rtf.format(-1, "day"); // > "yesterday" // Format relative time using positive day unit (1). rtf.format(1, "day"); // > "tomorrow"
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript Internationalization API (ECMA-402) The definition of 'RelativeTimeFormat()' in that specification. |
Stage 4 |
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() 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
|
Legend
- Full support
- Full support
- No support
- No support
- See implementation notes.
- See implementation notes.