Intl.RelativeTimeFormat

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

L'objet Intl.RelativeTimeFormat permet de mettre en forme des données temporelles relatives en respectant le format des locales.

Exemple interactif

Constructeur

Intl.RelativeTimeFormat()

Crée un nouvel objet Intl.RelativeTimeFormat.

Méthodes statiques

Intl.RelativeTimeFormat.supportedLocalesOf()

Renvoie un tableau qui contient les locales, parmi celles fournies en arguments, qui sont prises en charge sans avoir à recourir à la locale par défaut de l'environnement d'exécution.

Méthodes des instances

Intl.RelativeTimeFormat.prototype.format()

Formate une valeur et une unité en fonction des options de locale et de formatage fournies par l'objet Intl.RelativeTimeFormat courant.

Intl.RelativeTimeFormat.prototype.formatToParts()

Renvoie un tableau d'objets représentant le temps relatif sous forme de fragments qui peuvent être utilisés afin de réaliser un formatage tenant compte de la locale sur mesure.

Intl.RelativeTimeFormat.prototype.resolvedOptions()

Renvoie un nouvel objet dont les propriétés reflètent les options de locale et de collation calculées à l'initialisation de l'objet.

Exemples

Utiliser format()

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

js
// 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 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é.

js
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

Specification
ECMAScript Internationalization API Specification
# relativetimeformat-objects

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi