Tempo relativo e plurali
Usi RelativeTimeFormat e PluralRules.
Tempo relativo e plurali è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 4 lezioni in totale.
Intl.RelativeTimeFormat
Intl.RelativeTimeFormat produce espressioni come "3 giorni fa" o "tra 2 ore" nella lingua dell'utente.
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"Negativo per il passato, positivo per il futuro
Il segno del numero stabilisce la direzione: un valore negativo indica il passato, uno positivo il futuro.
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'opzione numeric
numeric: "auto" usa parole idiomatiche come "ieri" o "domani" invece di "1 giorno fa".
const rtf = new Intl.RelativeTimeFormat("en-US", { numeric: "auto" });
console.log(rtf.format(-1, "day")); // "yesterday"
console.log(rtf.format(0, "day")); // "today"Tempo relativo localizzato
Cambiando la locale, l'intera espressione viene tradotta automaticamente.
console.log(new Intl.RelativeTimeFormat("es").format(-2, "day")); // "hace 2 dias"
console.log(new Intl.RelativeTimeFormat("fr").format(3, "hour")); // "dans 3 heures"Scegliere l'unità corretta
Le applicazioni reali scelgono l'unità più grande sensata. Calcoli la differenza in secondi e passi gradualmente alle unità più piccole.
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 formazione del plurale non consiste solo nell'aggiungere una "s". Intl.PluralRules associa un numero a una categoria come "one" o "other" in base alla lingua.
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"Creare messaggi al plurale
Usi la categoria per scegliere la parola corretta.
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"Lingue con più forme
Molte lingue hanno diverse categorie di plurale. Il polacco, per esempio, distingue "few" e "many": una logica inglese codificata manualmente darebbe risultati errati.
const pr = new Intl.PluralRules("pl");
console.log(pr.select(1)); // "one"
console.log(pr.select(3)); // "few"
console.log(pr.select(5)); // "many"Plurali ordinali
Passi type: "ordinal" per ottenere le categorie degli ordinali come 1°, 2° e 3°.
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 11thCombinare con i numeri
Abbini PluralRules a NumberFormat per creare messaggi con conteggi completamente localizzati.
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
Un extra: Intl.ListFormat unisce gli elementi usando congiunzioni corrette per la locale.
const lf = new Intl.ListFormat("en-US", { type: "conjunction" });
console.log(lf.format(["red", "green", "blue"])); // "red, green, and blue"Verifica rapida
Verifichi il tempo relativo e i plurali.
Riepilogo: tempo relativo e plurali
Ha formattato il tempo relativo con RelativeTimeFormat (incluso numeric: "auto"), selezionato le soglie delle unità, gestito correttamente i plurali nelle diverse lingue e gli ordinali con PluralRules, e unito le liste con ListFormat. Prossimo argomento: ordinamento in base alla locale.
Impara JavaScript con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 59
- Lezioni
- 200
Domande Frequenti
La lezione «Tempo relativo e plurali» è gratuita?
Sì — il testo completo di «Tempo relativo e plurali» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 4 lezioni in totale.
Cosa imparerò in «Tempo relativo e plurali»?
Usi RelativeTimeFormat e PluralRules. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare JavaScript Academy?
Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Tempo relativo e plurali»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?
Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Formattare numeri e valute
- Formattare date e orari
- Tempo relativo e plurali
- Ordinamento dipendente dalla lingua