Intl.RelativeTimeFormat
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2020.
L'objet Intl.RelativeTimeFormat permet de mettre en forme des données temporelles relatives en respectant le format des locales.
Exemple interactif
const rtf1 = new Intl.RelativeTimeFormat("en", { style: "short" });
console.log(rtf1.format(3, "quarter"));
// Résultat attendu : "in 3 qtrs."
console.log(rtf1.format(-1, "day"));
// Résultat attendu : "1 day ago"
const rtf2 = new Intl.RelativeTimeFormat("es", { numeric: "auto" });
console.log(rtf2.format(2, "day"));
// Résultat attendu : "pasado mañana"
Constructeur
Intl.RelativeTimeFormat()-
Crée un nouvel objet
Intl.RelativeTimeFormat.
Méthodes statiques
Intl.RelativeTimeFormat.supportedLocalesOf()-
Retourne 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.
Propriétés d'instance
Ces propriétés sont définies sur Intl.RelativeTimeFormat.prototype et partagées par toutes les instances de Intl.RelativeTimeFormat.
Intl.RelativeTimeFormat.prototype.constructor-
La fonction constructeur qui a créé l'objet instance. Pour les instances de
Intl.RelativeTimeFormat, la valeur initiale est le constructeurIntl.RelativeTimeFormat. Intl.RelativeTimeFormat.prototype[Symbol.toStringTag]-
La valeur initiale de la propriété
[Symbol.toStringTag]est la chaîne de caractères"Intl.RelativeTimeFormat". Cette propriété est utilisée dansObject.prototype.toString().
Méthodes d'instance
Intl.RelativeTimeFormat.prototype.format()-
Formate une valeur (
value) et une unité (unit) en fonction des options de locale et de formatage de l'objetIntl.RelativeTimeFormatdonné. Intl.RelativeTimeFormat.prototype.formatToParts()-
Retourne un tableau (
Array) d'objets représentant le format de temps relatif en parties qui peuvent être utilisées pour un formatage personnalisé tenant compte de la locale. Intl.RelativeTimeFormat.prototype.resolvedOptions()-
Retourne un nouvel objet dont les propriétés reflètent les options de locale et de formatage calculées à l'initialisation de l'objet.
Exemples
>Utilisation simple de format()
L'exemple suivant montre comment utiliser un formateur de temps relatif pour la langue anglaise.
// Crée un formateur de temps relatif dans votre locale
// avec les valeurs par défaut passées explicitement.
const rtf = new Intl.RelativeTimeFormat("en", {
localeMatcher: "best fit", // autre valeur : "lookup"
numeric: "always", // autre valeur : "auto"
style: "long", // autres valeurs : "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 la méthode formatToParts()
L'exemple suivant montre comment créer un formateur de temps relatif qui retourne les différentes parties formatées.
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
// Format de temps relatif utilisant l'unité de 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 |
|---|
| ECMAScript® 2027 Internationalization API Specification> # relativetimeformat-objects> |
Compatibilité des navigateurs
Voir aussi
- Une prothèse d'émulation pour
Intl.RelativeTimeFormatdans FormatJS (angl.) - L'objet
Intl Intl.RelativeTimeFormat(angl.) sur v8.dev (2018)