Area di prova Moment.js
Area di prova interattiva per sperimentare l'API di data e ora di Moment.js – formattare, analizzare e manipolare le date con output in tempo reale
Input
Output
Leggimi
Che cos’è Moment.js?
Moment.js è una libreria JavaScript ampiamente utilizzata per l'analisi, la validazione, la manipolazione e la formattazione delle date. Prima che emergessero le alternative moderne, Moment.js era lo standard de facto per la gestione delle date nelle applicazioni JavaScript. Fornisce un’API pulita e concatenabile che rende il lavoro con le date intuitivo e diretto. Sebbene esistano librerie più recenti come date-fns e Luxon, Moment.js rimane molto usato in codebase legacy ed è ancora attivamente mantenuto per correzioni di bug. Comprendere Moment.js è fondamentale per gli sviluppatori che lavorano su progetti esistenti che ne fanno uso.
Perché utilizzare una libreria per la manipolazione delle date?
L’oggetto nativo Date di JavaScript è notoriamente difficile da gestire. Presenta comportamenti incoerenti tra i browser, un indice dei mesi confuso (0‑11 anziché 1‑12), opzioni di formattazione limitate e nessun supporto integrato per i fusi orari. Le librerie per le date come Moment.js risolvono questi problemi fornendo un’API coerente e ben documentata. Gestiscono casi particolari come le transizioni dell’ora legale, gli anni bisestili e la formattazione specifica per locale in modo automatico, risparmiando agli sviluppatori la scrittura di logiche complesse e soggette a errori.
Descrizione dello strumento
Il Moment.js Playground è un ambiente interattivo basato sul browser per sperimentare con la libreria Moment.js. Scrivi ed esegui codice JavaScript direttamente nell’editor con pieno accesso a Moment.js e Moment Timezone. Il playground esegue automaticamente il tuo codice mentre digiti (con debounce) e visualizza tutto l’output della console in un pannello in stile terminale sotto. È perfetto per apprendere Moment.js, testare stringhe di formattazione delle date, fare debug di calcoli temporali e prototipare logiche legate al tempo senza configurare un ambiente di sviluppo.
Esempi
Formattare la data corrente:
const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// Output: December 30th, 2025
console.log(now.format("dddd, h:mm A"));
// Output: Monday, 3:45 PMAnalizzare formati di data diversi:
const date1 = moment("2025-12-25", "YYYY-MM-DD");
const date2 = moment("25/12/2025", "DD/MM/YYYY");
const date3 = moment("Dec 25, 2025", "MMM D, YYYY");
console.log(date1.format("dddd")); // Thursday
console.log(date2.isValid()); // true
console.log(date3.month()); // 11 (0-indexed)Calcolare il tempo relativo:
const past = moment().subtract(3, "days");
const future = moment().add(2, "weeks");
console.log(past.fromNow()); // 3 days ago
console.log(future.fromNow()); // in 14 days
console.log(past.from(future)); // 17 days agoAritmetica delle date:
const date = moment("2025-01-15");
const nextMonth = date.clone().add(1, "month");
const lastWeek = date.clone().subtract(1, "week");
const endOfMonth = date.clone().endOf("month");
console.log(nextMonth.format("YYYY-MM-DD")); // 2025-02-15
console.log(lastWeek.format("YYYY-MM-DD")); // 2025-01-08
console.log(endOfMonth.format("YYYY-MM-DD")); // 2025-01-31Lavorare con le durate:
const start = moment("2025-01-01");
const end = moment("2025-12-31");
const duration = moment.duration(end.diff(start));
console.log(duration.asDays() + " days"); // 364 days
console.log(duration.asWeeks() + " weeks"); // 52 weeks
console.log(duration.humanize()); // a yearConfrontare le date:
const date1 = moment("2025-06-15");
const date2 = moment("2025-12-25");
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2, "year")); // true
console.log(date1.isBetween("2025-01-01", "2025-08-01")); // trueLavorare con i fusi orari:
const now = moment();
console.log(now.tz("America/New_York").format("h:mm A z"));
console.log(now.tz("Europe/London").format("h:mm A z"));
console.log(now.tz("Asia/Tokyo").format("h:mm A z"));Funzionalità
- Libreria Moment.js completa: Accesso a tutte le funzioni di Moment.js, inclusi parsing, formattazione, manipolazione e confronto
- Supporto ai fusi orari: Moment Timezone è pre-caricato per lavorare con i fusi orari di tutto il mondo
- Esecuzione di codice in tempo reale: Il codice viene eseguito automaticamente mentre digiti, grazie a un debounce intelligente
- Terminale integrato: Visualizza l’output della console istantaneamente senza aprire gli strumenti di sviluppo del browser
- Evidenziazione della sintassi: Evidenziazione della sintassi JavaScript per una migliore leggibilità del codice
- Gestione degli errori: Gli errori di runtime vengono mostrati chiaramente nell’output del terminale
Casi d’uso
- Apprendere Moment.js: Sperimenta con l’API e vedi i risultati immediatamente, senza configurare un progetto
- Testare le stringhe di formattazione: Prova diversi token di formattazione per ottenere l’output di data esatto di cui hai bisogno
- Debug di calcoli temporali: Testa aritmetiche di data complesse prima di implementarle nella tua applicazione
- Conversioni di fuso orario: Converte rapidamente gli orari tra diversi fusi orari
- Manutenzione di codice legacy: Prova snippet di codice Moment.js quando mantieni applicazioni esistenti
Token di formattazione comuni
| Token | Descrizione | Esempio |
|---|---|---|
YYYY |
Anno a 4 cifre | 2025 |
YY |
Anno a 2 cifre | 25 |
MM |
Mese a 2 cifre | 01‑12 |
MMM |
Nome mese abbreviato | Jan, Feb |
MMMM |
Nome mese completo | January |
DD |
Giorno a 2 cifre | 01‑31 |
Do |
Giorno con suffisso ordinale | 1st, 2nd, 3rd |
dddd |
Nome giorno della settimana completo | Monday |
ddd |
Nome giorno abbreviato | Mon |
HH |
Ora in formato 24 h | 00‑23 |
hh |
Ora in formato 12 h | 01‑12 |
mm |
Minuti | 00‑59 |
ss |
Secondi | 00‑59 |
A |
AM/PM (maiuscolo) | AM, PM |
a |
am/pm (minuscolo) | am, pm |
z |
Abbreviazione fuso orario | EST, PST |
Z |
Offset del fuso orario | +05:00 |
Riferimento ai metodi comuni
| Metodo | Descrizione | Esempio |
|---|---|---|
moment() |
Crea il momento corrente | moment() |
format(string) |
Formatta in stringa | moment().format("YYYY-MM-DD") |
add(n, unit) |
Aggiunge tempo | moment().add(7, "days") |
subtract(n, unit) |
Sottrae tempo | moment().subtract(1, "month") |
startOf(unit) |
Inizio dell’unità | moment().startOf("week") |
endOf(unit) |
Fine dell’unità | moment().endOf("month") |
fromNow() |
Tempo relativo | moment("2025-01-01").fromNow() |
diff(moment) |
Differenza | momentA.diff(momentB, "days") |
isBefore(moment) |
È precedente | momentA.isBefore(momentB) |
isAfter(moment) |
È successivo | momentA.isAfter(momentB) |
isSame(moment, unit) |
È lo stesso | momentA.isSame(momentB, "month") |
isValid() |
Verifica validità | moment("invalid").isValid() |
clone() |
Crea una copia | moment().clone() |
tz(zone) |
Converte fuso orario | moment().tz("America/New_York") |
Unità di tempo
Moment.js supporta le seguenti unità di tempo per le operazioni add, subtract, startOf, endOf e diff:
years/yquarters/Qmonths/Mweeks/wdays/dhours/hminutes/mseconds/smilliseconds/ms