Intl.DurationFormat : méthode formatToParts()
Baseline
2025
Newly available
Depuis March 2025, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
La méthode formatToParts() des instances de Intl.DurationFormat retourne un tableau d'objets représentant chaque partie de la chaîne de caractères mise en forme 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.
Syntaxe
formatToParts(duration)
Paramètres
durationFacultatif-
L'objet de durée à mettre en forme. Il doit inclure certaines ou toutes les propriétés suivantes :
years,months,weeks,days,hours,minutes,seconds,milliseconds,microseconds,nanoseconds. La valeur de chaque propriété doit être un entier, et leurs signes doivent être cohérents. Cela peut être un objetTemporal.Duration; voir la documentation deTemporal.Durationpour plus d'informations sur ces propriétés.
Valeur de retour
An Array d'objets contenant la durée mise en forme en parties. Chaque objet possède deux ou trois propriétés, type, value, et éventuellement unit, chacune contenant une chaîne de caractères. La concaténation 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 obtenues directement en appelant Intl.NumberFormat.prototype.formatToParts() avec la valeur numérique et leurs unités respectives. Tous les jetons produits par le NumberFormat ont une propriété supplémentaire unit, qui est la forme singulière de l'entrée unit ; ceci est destiné à un usage programmatique et n'est pas localisé. L'unité localisée est produite comme un jeton unit séparé dans le résultat de NumberFormat. Les parties de chaque unité de durée sont concaténées de la même manière qu'en appelant Intl.ListFormat.prototype.formatToParts() avec { type: "unit" }, donc des jetons littéraux supplémentaires sont insérés.
Exemples
La méthode formatToParts permet une mise en forme adaptée à la locale des chaînes de caractères produites par les formateurs DurationFormat en vous fournissant la chaîne de caractères en parties :
const duration = {
hours: 7,
minutes: 8,
seconds: 9,
milliseconds: 123,
microseconds: 456,
nanoseconds: 789,
};
new Intl.DurationFormat("en", { style: "long" }).formatToParts(duration);
// Valeur retournée :
[
{ type: "integer", value: "7", unit: "hour" },
{ type: "literal", value: " ", unit: "hour" },
{ type: "unit", value: "hours", unit: "hour" },
{ type: "literal", value: ", " },
{ type: "integer", value: "8", unit: "minute" },
{ type: "literal", value: " ", unit: "minute" },
{ type: "unit", value: "minutes", unit: "minute" },
{ type: "literal", value: ", " },
{ type: "integer", value: "9", unit: "second" },
{ type: "literal", value: " ", unit: "second" },
{ type: "unit", value: "seconds", unit: "second" },
{ type: "literal", value: ", " },
{ type: "integer", value: "123", unit: "millisecond" },
{ type: "literal", value: " ", unit: "millisecond" },
{ type: "unit", value: "milliseconds", unit: "millisecond" },
{ type: "literal", value: ", " },
{ type: "integer", value: "456", unit: "microsecond" },
{ type: "literal", value: " ", unit: "microsecond" },
{ type: "unit", value: "microseconds", unit: "microsecond" },
{ type: "literal", value: ", " },
{ type: "integer", value: "789", unit: "nanosecond" },
{ type: "literal", value: " ", unit: "nanosecond" },
{ type: "unit", value: "nanoseconds", unit: "nanosecond" },
];
Spécifications
| Specification |
|---|
| Intl.DurationFormat> # sec-Intl.DurationFormat.prototype.formatToParts> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Intl.DurationFormat - La méthode
Intl.DurationFormat.prototype.format() - L'objet
Temporal.Duration