Intl.RelativeTimeFormat

L'objet Intl.RelativeTimeFormat est un constructeur fournissant des objets pour mettre en forme des données temporelles relatives en respectant le format des locales.

Syntaxe

new Intl.RelativeTimeFormat([locales[, options]])

Paramètres

locales

Une chaine de caractères avec un identifiant de langue BCP 47, ou un tableau de ce type de chaine de caractères. Pour le format général et l'interprétation de l'argument locales, voir la page Intl.

options Facultatif

Optionnel, un objet possédant tout ou partie des propriétés suivantes :

localeMatcher
L'algorithme de correspondance à utiliser pour la locale. Les valeurs possibles sont "lookup" et "best fit" ; le défaut est "best fit". Pour des informations sur cette option, voir la page Intl.
numeric
Le format du message de sortie. Les valeurs possibles sont "always" (par exemple 1 day ago) ou  "auto" (par exemple yesterday). "auto" permet de ne pas toujours avoir de valeurs numériques dans le message produit.
style
La longueur du message internationalisé. Les valeurs possibles sont : "long" (la valeur par défaut) (par exemple : in 1 month), "short" (par exemple : in 1 mo.) ou  "narrow" (par exemple : in 1 mo.). Le style narrow peut être semblable au style short pour certaines locales.

Description

Propriétés

Intl.RelativeTimeFormat.prototype
Cette propriété permet d'ajouter des propriétés à l'ensemble des instances.

Méthodes

Intl.RelativeTimeFormat.supportedLocalesOf()
Cette méthode renvoie un tableau des locales, parmi celles passées en argument, qui sont pris en charge pour le formatage internationalisé des temps relatifs sans qu'il y ait besoin d'utiliser la locale par défaut de l'environnement d'exécution.

Les instances de RelativeTimeFormat

Propriétés

Les instances de RelativeTimeFormat héritent des propriétés suivantes grâce à leur prototype :

Intl.RelativeTimeFormat.prototype.constructor
Une référence à Intl.RelativeTimeFormat.

Méthodes

Les instances de RelativeTimeFormat héritent des méthodes suivantes grâce à leur prototype :

Intl.RelativeTimeFormat.prototype.format()
Une méthode qui formate une valeur, accompagnée d'une unité selon des options de locales et de formatage stockées dans l'objet Intl.RelativeTimeFormat.
Intl.RelativeTimeFormat.prototype.formatToParts()
Une méthode qui formate une valeur comme la méthode format() mais qui renvoie un tableau (Array) contenant les différentes parties de la valeur formatée.
Intl.RelativeTimeFormat.prototype.resolvedOptions()
Une méthode qui renvoie un objet dont les propriétés indique les options de locale et de formatage calculées lors de l'initialisation du formateur.

Exemples

Utiliser format()

L'exemple suivant illustre comment créer un formateur de temps relatif en anglais :

// On crée un formateur en anglais en utilisant explicitement 
// les valeurs par défaut.
const rtf = new Intl.RelativeTimeFormat("en", {
    localeMatcher: "best fit", // autre valeur possible : "lookup"
    numeric: "always", // autre valeur possible : "auto"
    style: "long", // autre valeur possible : "short" ou "narrow"
});

// On formate un temps relatif avec une valeur négative (-1).
rtf.format(-1, "day");
// > "1 day ago"

// On formate un temps relatif avec une valeur positive (1).
rtf.format(1, "day");
// > "in 1 day"

Utiliser l'option auto

Si l'option numeric:auto est passée, on aura la chaîne de caractères yesterday ou tomorrow plutôt que 1 day ago ou in 1 day. De cette façon, on peut ne pas avoir de valeur numérique dans la valeur produite.

// On crée un formateur en anglais avec l'option
// numeric: "auto".
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });

// On formate un temps relatif avec une valeur négative (-1).
rtf.format(-1, "day");
// > "yesterday"

// On formate un temps relatif avec une valeur positive (1).
rtf.format(1, "day");
// > "tomorrow"

Utiliser formatToParts()

L'exemple suivant illustre comment créer un formateur de temps relatif qui renvoie les différents fragments pour exprimer le temps relatif internationalisé.

const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });

// On crée un temps relatif exprimé en jour.
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" }]

Spécifications

Spécification Etat Commentaires
Proposition pour le constructeur Intl.RelativeTimeFormat Proposition de niveau 3

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
RelativeTimeFormatChrome Support complet 71Edge Support complet 79Firefox Support complet 65IE Aucun support NonOpera Support complet 58Safari Support complet 14WebView Android Support complet 71Chrome Android Support complet 71Firefox Android Support complet 65Opera Android Support complet 50Safari iOS Support complet 14Samsung Internet Android Support complet 10.0nodejs Support complet 12.0.0
Notes
Support complet 12.0.0
Notes
Notes Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
RelativeTimeFormat() constructorChrome Support complet 71Edge Support complet 79Firefox Support complet 65IE Aucun support NonOpera Support complet 58Safari Support complet 14WebView Android Support complet 71Chrome Android Support complet 71Firefox Android Support complet 65Opera Android Support complet 50Safari iOS Support complet 14Samsung Internet Android Support complet 10.0nodejs Support complet 13.0.0
Support complet 13.0.0
Support partiel 12.0.0
Notes
Notes Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the RelativeTimeFormat instance silently falls back to en-US. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.
formatChrome Support complet 71Edge Support complet 79Firefox Support complet 65IE Aucun support NonOpera Support complet 58Safari Support complet 14WebView Android Support complet 71Chrome Android Support complet 71Firefox Android Support complet 65Opera Android Support complet 50Safari iOS Support complet 14Samsung Internet Android Support complet 10.0nodejs Support complet 12.0.0
Notes
Support complet 12.0.0
Notes
Notes Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
formatToPartsChrome Support complet 71Edge Support complet 79Firefox Support complet 70IE Aucun support NonOpera Support complet 58Safari Support complet 14WebView Android Support complet 71Chrome Android Support complet 71Firefox Android Aucun support NonOpera Android Support complet 50Safari iOS Support complet 14Samsung Internet Android Support complet 10.0nodejs Support complet 12.0.0
Notes
Support complet 12.0.0
Notes
Notes Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
resolvedOptionsChrome Support complet 71Edge Support complet 79Firefox Support complet 65IE Aucun support NonOpera Support complet 58Safari Support complet 14WebView Android Support complet 71Chrome Android Support complet 71Firefox Android Support complet 65Opera Android Support complet 50Safari iOS Support complet 14Samsung Internet Android Support complet 10.0nodejs Support complet 12.0.0
Notes
Support complet 12.0.0
Notes
Notes Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
supportedLocalesOfChrome Support complet 71Edge Support complet 79Firefox Support complet 65IE Aucun support NonOpera Support complet 58Safari Support complet 14WebView Android Support complet 71Chrome Android Support complet 71Firefox Android Support complet 65Opera Android Support complet 50Safari iOS Support complet 14Samsung Internet Android Support complet 10.0nodejs Support complet 13.0.0
Support complet 13.0.0
Support partiel 12.0.0
Notes
Notes Before version 13.0.0, only the locale data for en-US is available by default. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Voir les notes d'implémentation.
Voir les notes d'implémentation.

Voir aussi