Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Intl.RelativeTimeFormat : méthode formatToParts()

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.

La méthode formatToParts() des instances de Intl.RelativeTimeFormat retourne un tableau d'objets représentant chaque partie de la chaîne de caractères formatée qui serait retournée par format(). Elle est utile pour construire des chaînes de caractères personnalisées à partir des jetons spécifiques à la locale.

Exemple interactif

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

console.log(parts[0].value);
// Résultat attendu : "in "

console.log(parts[1].value);
// Résultat attendu : "10"

console.log(parts[2].value);
// Résultat attendu : " seconds"

Syntaxe

js
formatToParts(value, unit)

Paramètres

value

Valeur numérique à utiliser dans le message de temps relatif internationalisé.

unit

Unité à utiliser dans le message de temps relatif internationalisé. Les valeurs possibles sont : "year", "quarter", "month", "week", "day", "hour", "minute", "second". Les formes plurielles sont également autorisées.

Valeur de retour

Un tableau (Array) d'objets contenant le temps relatif formaté en parties. Chaque objet a deux ou trois propriétés, type, value et éventuellement unit, chacune contenant une chaîne de caractères. La concaténation des valeurs de value, dans l'ordre fourni, donnera la même chaîne de caractères que format(). Les parties peuvent être considérées comme directement obtenues en appelant Intl.NumberFormat.prototype.formatToParts() avec la valeur numérique, en passant uniquement l'option numberingSystem, puis en ajoutant des jetons supplémentaires de type literal, tels que "in ", " days ago", etc. Tous les jetons produits par le NumberFormat ont une propriété supplémentaire unit, qui est la forme singulière de l'unité d'entrée ; cela est destiné à un usage programmatique et n'est pas localisé. L'unité localisée est sortie comme partie d'un jeton littéral.

Lorsque options.numeric est "auto", et qu'il existe une chaîne de caractères spéciale pour la valeur, le tableau retourné est un seul jeton littéral.

Exemples

Utiliser la méthode formatToParts()

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

// Formatage d'une valeur relative utilisant l'unité 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
# sec-Intl.RelativeTimeFormat.prototype.formatToParts

Compatibilité des navigateurs

Voir aussi