Intl.RelativeTimeFormat() constructor
The Intl.RelativeTimeFormat()
constructor creates Intl.RelativeTimeFormat
objects.
Syntax
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 parameter description on theIntl
main 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, see the Intl page. 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 |
---|
ECMAScript Internationalization API Specification # sec-intl-relativetimeformat-constructor |
Browser compatibility
BCD tables only load in the browser