You’re reading the English version of this content since no translation exists yet for this locale. Bu makaleyi çevirmemize yardım edin!
The Intl.RelativeTimeFormat
object is a constructor for objects that enable 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.
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.
Description
Properties
Intl.RelativeTimeFormat.prototype
- Allows the addition of properties to all objects.
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.
RelativeTimeFormat
instances
Properties
RelativeTimeFormat
instances inherit the following properties from their prototype:
Intl.RelativeTimeFormat.prototype.constructor
- A reference to
Intl.RelativeTimeFormat
.
Methods
RelativeTimeFormat
instances inherit the following methods from their prototype:
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 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"
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 |
---|---|---|
Intl.RelativeTimeFormat Constructor | Stage 3 |
Browser compatibility
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RelativeTimeFormat | Chrome Full support 71 | Edge No support No | 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 No support No | 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 |
format | Chrome Full support 71 | Edge No support No | 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 No support No | 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 |
prototype | Chrome Full support 71 | Edge No support No | 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 |
resolvedOptions | Chrome Full support 71 | Edge No support No | 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 No support No | 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 |
Legend
- Full support
- Full support
- No support
- No support