Constructeur 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.
Le constructeur Intl.RelativeTimeFormat() permet de créer des objets Intl.RelativeTimeFormat.
Syntaxe
new Intl.RelativeTimeFormat()
new Intl.RelativeTimeFormat(locales)
new Intl.RelativeTimeFormat(locales, options)
Paramètres
localesFacultatif-
Une chaîne de caractères avec une balise de langue BCP 47 ou une instance de
Intl.Locale, ou un tableau de tels identifiants de locale. La locale par défaut du runtime est utilisée lorsqueundefinedest passé ou lorsqu'aucun des identifiants de locale définis n'est pris en charge. Pour la forme générale et l'interprétation de l'argumentlocales, voir la description du paramètre sur la page principale deIntl.La clé d'extension Unicode suivante est autorisée :
nu-
Voir
numberingSystem.
Cette clé peut également être définie avec
options(comme indiqué ci-dessous). Lorsque les deux sont définis, la propriétéoptionsprend le pas. optionsFacultatif-
Un objet contenant les propriétés suivantes, dans l'ordre dans lequel elles sont récupérées (toutes sont optionnelles) :
localeMatcher-
L'algorithme de correspondance de locale à utiliser. Les valeurs possibles sont
"lookup"et"best fit"; la valeur par défaut est"best fit". Pour plus d'informations sur cette option, voir Identification et négociation de la locale. numberingSystem-
Le système de numération à utiliser pour le formatage des nombres, tel que
"arab","hans","mathsans", etc. Pour une liste des types de systèmes de numération pris en charge, voirIntl.supportedValuesOf(); la valeur par défaut dépend de la locale. Cette option peut également être définie via la clé d'extension Unicodenu; si les deux sont fournis, la propriétéoptionsprend le pas. style-
Le style du temps relatif formaté. Les valeurs possibles sont :
"long"(par défaut)-
Par exemple, « dans 1 mois »
"short"-
Par exemple, « dans 1 mois »
"narrow"-
Par exemple, « dans 1 mois ». Le style narrow peut être similaire au style short pour certaines locales.
numeric-
Indique si les valeurs numériques doivent être utilisées dans la sortie. Les valeurs possibles sont
"always"et"auto"; la valeur par défaut est"always". Lorsque l'option est définie sur"auto", la sortie peut utiliser des expressions plus idiomatiques telles que"hier"au lieu de"il y a 1 jour".
Exceptions
RangeError-
Levée si
localesouoptionscontiennent des valeurs invalides.
Exemples
>Usage simple de format()
Le exemple suivant montre comment créer un formateur de temps relatif en utilisant la langue française.
// Créez un formateur de temps relatif dans votre locale
// avec les valeurs par défaut passées explicitement.
const rtf = new Intl.RelativeTimeFormat("fr", {
numeric: "always", // autre valeur : "auto"
style: "long", // autres valeurs : "short" ou "narrow"
});
// Formatez un temps relatif en utilisant une valeur négative (-1).
rtf.format(-1, "day"); // "il y a 1 jour"
// Formatez un temps relatif en utilisant une valeur positive (1).
rtf.format(1, "day"); // "dans 1 jour"
En utilisant l'option auto
Si l'option numeric: "auto" est passée, le résultat sera la chaîne de caractères hier ou demain plutôt que il y a 1 jour ou dans 1 jour. Cela permet de ne pas toujours avoir de valeurs numériques dans la valeur produite.
// Créez un formateur de temps relatif dans votre locale
// avec l'option numeric: "auto" passée.
const rtf = new Intl.RelativeTimeFormat("fr", { numeric: "auto" });
// Formatez un temps relatif en utilisant une valeur négative (-1).
rtf.format(-1, "day"); // "hier"
// Formatez un temps relatif en utilisant une valeur positive (1).
rtf.format(1, "day"); // "demain"
Lorsque la valeur est 0, la sortie peut dépendre de l'unité. "0 secondes" est représenté par la version localisée de "maintenant".
rtf.format(0, "second"); // "maintenant"
rtf.format(0, "day"); // "aujourd'hui"
rtf.format(0, "minute"); // "cette minute"
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Internationalization API Specification> # sec-intl-relativetimeformat-constructor> |
Compatibilité des navigateurs
Voir aussi
- L'objet natif
Intl.RelativeTimeFormat - L'objet natif
Intl Intl.RelativeTimeFormat(angl.) sur v8.dev (2018)