Temps relatif et pluriels
Utilisez RelativeTimeFormat et PluralRules.
Temps relatif et pluriels est une leçon JavaScript Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage JavaScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours JavaScript Academy comprend 4 leçons au total.
Intl.RelativeTimeFormat
Intl.RelativeTimeFormat produit des expressions comme « il y a 3 jours » ou « dans 2 heures » dans la langue de l’utilisateur.
const rtf = new Intl.RelativeTimeFormat("en-US");
console.log(rtf.format(-1, "day")); // "1 day ago"
console.log(rtf.format(2, "hour")); // "in 2 hours"Négatif pour le passé, positif pour le futur
Le signe du nombre indique la direction : une valeur négative correspond au passé et une valeur positive au futur.
const rtf = new Intl.RelativeTimeFormat("en-US");
console.log(rtf.format(-3, "week")); // "3 weeks ago"
console.log(rtf.format(5, "minute")); // "in 5 minutes"L’option numeric
numeric: "auto" utilise des mots idiomatiques comme « hier » ou « demain » au lieu de « il y a 1 jour ».
const rtf = new Intl.RelativeTimeFormat("en-US", { numeric: "auto" });
console.log(rtf.format(-1, "day")); // "yesterday"
console.log(rtf.format(0, "day")); // "today"Temps relatif localisé
Changer les paramètres régionaux traduit automatiquement toute l’expression.
console.log(new Intl.RelativeTimeFormat("es").format(-2, "day")); // "hace 2 dias"
console.log(new Intl.RelativeTimeFormat("fr").format(3, "hour")); // "dans 3 heures"Choisir la bonne unité
Les applications réelles choisissent la plus grande unité pertinente. Calculez la différence en secondes, puis descendez progressivement parmi les unités.
function ago(date) {
const diff = (date - Date.now()) / 1000;
const rtf = new Intl.RelativeTimeFormat("en-US", { numeric: "auto" });
if (Math.abs(diff) < 60) return rtf.format(Math.round(diff), "second");
if (Math.abs(diff) < 3600) return rtf.format(Math.round(diff / 60), "minute");
return rtf.format(Math.round(diff / 3600), "hour");
}
console.log(ago(new Date(Date.now() - 90000)));Intl.PluralRules
La mise au pluriel ne consiste pas seulement à ajouter « s ». Intl.PluralRules associe un nombre à une catégorie comme "one" ou "other" selon la langue.
const pr = new Intl.PluralRules("en-US");
console.log(pr.select(1)); // "one"
console.log(pr.select(2)); // "other"
console.log(pr.select(0)); // "other"Construire des messages au pluriel
Utilisez la catégorie pour choisir le mot correct.
const pr = new Intl.PluralRules("en-US");
const forms = { one: "item", other: "items" };
function label(n) { return n + " " + forms[pr.select(n)]; }
console.log(label(1)); // "1 item"
console.log(label(5)); // "5 items"Les langues aux formes plus nombreuses
De nombreuses langues possèdent plusieurs catégories de pluriel. Le polonais, par exemple, distingue "few" et "many" : une logique anglaise codée en dur serait incorrecte.
const pr = new Intl.PluralRules("pl");
console.log(pr.select(1)); // "one"
console.log(pr.select(3)); // "few"
console.log(pr.select(5)); // "many"Pluriels ordinaux
Passez type: "ordinal" pour obtenir les catégories des ordinaux comme 1er, 2e et 3e.
const pr = new Intl.PluralRules("en-US", { type: "ordinal" });
const suffix = { one: "st", two: "nd", few: "rd", other: "th" };
function ordinal(n) { return n + suffix[pr.select(n)]; }
console.log(ordinal(1), ordinal(2), ordinal(3), ordinal(11)); // 1st 2nd 3rd 11thAssocier les nombres
Associez PluralRules à NumberFormat pour obtenir des messages de quantité entièrement localisés.
const nf = new Intl.NumberFormat("en-US");
const pr = new Intl.PluralRules("en-US");
const forms = { one: "file", other: "files" };
function msg(n) { return nf.format(n) + " " + forms[pr.select(n)]; }
console.log(msg(1000)); // "1,000 files"Intl.ListFormat
En bonus, Intl.ListFormat relie les éléments avec des conjonctions adaptées aux paramètres régionaux.
const lf = new Intl.ListFormat("en-US", { type: "conjunction" });
console.log(lf.format(["red", "green", "blue"])); // "red, green, and blue"Vérification rapide
Testez le temps relatif et les pluriels.
Récapitulatif : temps relatif et pluriels
Vous avez formaté le temps relatif avec RelativeTimeFormat (notamment avec numeric: "auto"), choisi les seuils des unités, correctement géré les pluriels avec PluralRules selon les langues et pour les ordinaux, puis relié des listes avec ListFormat. Ensuite : le tri selon les paramètres régionaux.
Questions Fréquemment Posées
La leçon « Temps relatif et pluriels » est-elle gratuite ?
Oui — le texte complet de « Temps relatif et pluriels » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours JavaScript Academy, passe à CoddyKit PRO. Le cours JavaScript Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Temps relatif et pluriels » ?
Utilisez RelativeTimeFormat et PluralRules. Tu pratiques JavaScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer JavaScript Academy ?
Aucune expérience préalable n'est requise. JavaScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Temps relatif et pluriels » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon JavaScript Academy ?
Oui. Chaque leçon JavaScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Formater les nombres et les devises
- Formater les dates et les heures
- Temps relatif et pluriels
- Tri adapté aux paramètres régionaux