I volontari di MDN non hanno ancora tradotto questo articolo in Italiano. Unisciti a noi e traducilo tu stesso.
Puoi anche consultare l’articolo in English (US).

The Intl.RelativeTimeFormat object is a constructor for objects that enable language-sensitive relative time formatting.

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, see Intl.
  • 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 a unit according to the locale and formatting options of the given Intl.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.RelativeTime proposal Stage 3  

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
RelativeTimeFormatChrome Full support 71Edge No support NoFirefox Full support 65IE No support NoOpera ? Safari No support NoWebView Android Full support 71Chrome Android Full support 71Edge Mobile No support NoFirefox Android Full support 65Opera Android ? Safari iOS No support NoSamsung Internet Android ? nodejs No support No
formatChrome Full support 71Edge No support NoFirefox Full support 65IE No support NoOpera ? Safari No support NoWebView Android Full support 71Chrome Android Full support 71Edge Mobile No support NoFirefox Android Full support 65Opera Android ? Safari iOS No support NoSamsung Internet Android ? nodejs No support No
formatToPartsChrome Full support 71Edge No support NoFirefox No support NoIE No support NoOpera ? Safari No support NoWebView Android Full support 71Chrome Android Full support 71Edge Mobile No support NoFirefox Android No support NoOpera Android ? Safari iOS No support NoSamsung Internet Android ? nodejs No support No
prototypeChrome Full support 71Edge No support NoFirefox Full support 65IE No support NoOpera ? Safari No support NoWebView Android Full support 71Chrome Android Full support 71Edge Mobile No support NoFirefox Android Full support 65Opera Android ? Safari iOS No support NoSamsung Internet Android ? nodejs No support No
resolvedOptionsChrome Full support 71Edge No support NoFirefox Full support 65IE No support NoOpera ? Safari No support NoWebView Android Full support 71Chrome Android Full support 71Edge Mobile No support NoFirefox Android Full support 65Opera Android ? Safari iOS No support NoSamsung Internet Android ? nodejs No support No
supportedLocalesOfChrome Full support 71Edge No support NoFirefox Full support 65IE No support NoOpera ? Safari No support NoWebView Android Full support 71Chrome Android Full support 71Edge Mobile No support NoFirefox Android Full support 65Opera Android ? Safari iOS No support NoSamsung Internet Android ? nodejs No support No

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown

 

See also

 

Tag del documento e collaboratori

Hanno collaborato alla realizzazione di questa pagina: mdnwebdocs-bot, spadgos, romulocintra, fscholz, evilpie, littledan, chrisdavidmills
Ultima modifica di: mdnwebdocs-bot,