Che cos'è date-fns?

date-fns è una moderna libreria JavaScript per la gestione delle date che fornisce strumenti completi, coerenti e affidabili per lavorare con le date in JavaScript. A differenza dell'oggetto nativo JavaScript Date, che presenta molte stranezze e incoerenze, date-fns offre un approccio modulare e funzionale alla manipolazione delle date. È tree‑shakeable, il che significa che includi solo le funzioni effettivamente utilizzate, mantenendo la dimensione del bundle minima. La libreria supporta oltre 200 funzioni che coprono tutto, dalla formattazione e parsing al confronto, alla manipolazione e localizzazione delle date.

Perché utilizzare un playground date-fns?

Lavorare con le date in JavaScript può essere complicato: fusi orari, pattern di formattazione e aritmetica delle date portano spesso a risultati inattesi. Un ambiente playground consente di sperimentare le funzioni di date-fns in tempo reale, vedere l'output immediato e apprendere l'API senza configurare un progetto completo. È perfetto per testare le stringhe di formattazione, fare debug dei calcoli di data o prototipare rapidamente la logica delle date prima di integrarla nella propria applicazione.

Descrizione dello strumento

Il date-fns Playground è un ambiente di codifica interattivo che consente di scrivere ed eseguire codice JavaScript con l'intera libreria date-fns pre‑caricata. L'intera libreria date-fns è disponibile tramite l'oggetto dateFns, offrendo l'accesso a tutte le oltre 200 funzioni. Il codice viene eseguito automaticamente mentre si digita (con debounce) e tutti gli output di console.log, console.warn e console.error appaiono nel terminale integrato sotto l'editor. Ciò lo rende ideale per apprendere date-fns, testare operazioni sulle date e sperimentare diverse opzioni di formattazione.

Esempi

Formatta la data corrente:

const now = new Date();
console.log(dateFns.format(now, "MMMM do, yyyy"));
// Output: December 30th, 2025

Calcola i giorni tra due date:

const start = new Date(2025, 0, 1);
const end = new Date(2025, 11, 31);
console.log(dateFns.differenceInDays(end, start) + " days");
// Output: 364 days

Aggiungi tempo a una data:

const today = new Date();
const nextWeek = dateFns.addWeeks(today, 1);
const nextMonth = dateFns.addMonths(today, 1);
console.log("Next week:", dateFns.format(nextWeek, "yyyy-MM-dd"));
console.log("Next month:", dateFns.format(nextMonth, "yyyy-MM-dd"));

Verifica se una data è nel passato o nel futuro:

const date = new Date(2024, 5, 15);
console.log("Is past?", dateFns.isPast(date));
console.log("Is future?", dateFns.isFuture(date));

Analizza una stringa di data:

const parsed = dateFns.parse("25/12/2025", "dd/MM/yyyy", new Date());
console.log(dateFns.format(parsed, "EEEE, MMMM do, yyyy"));
// Output: Thursday, December 25th, 2025

Caratteristiche

  • Libreria date-fns completa: Accesso a tutte le oltre 200 funzioni date-fns tramite l'oggetto dateFns
  • Esecuzione del codice in tempo reale: Il codice viene eseguito automaticamente mentre si digita con debounce intelligente
  • Terminale integrato: Visualizza l'output della console istantaneamente senza 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 visualizzati chiaramente nell'output del terminale

Casi d'uso

  • Apprendere date-fns: Sperimenta con diverse funzioni e vedi i risultati immediatamente senza configurare un progetto
  • Test di formati data: Prova diverse stringhe di formattazione per trovare il pattern di output esatto di cui hai bisogno
  • Prototipazione di calcoli data: Testa aritmetica complessa delle date, come aggiungere giorni lavorativi, trovare intervalli o confrontare date
  • Debug della logica delle date: Isola e testa snippet di codice relativi alle date nei tuoi progetti
  • Conversioni rapide di date: Converti tra formati di data o calcola differenze temporali al volo

Funzioni comuni di date-fns

Funzione Descrizione Esempio
format Formatta una data in una stringa dateFns.format(date, "yyyy-MM-dd")
parse Analizza una stringa in una data dateFns.parse("2025-01-01", "yyyy-MM-dd", new Date())
addDays Aggiunge giorni a una data dateFns.addDays(date, 7)
subMonths Sottrae mesi da una data dateFns.subMonths(date, 3)
differenceInDays Ottiene i giorni tra due date dateFns.differenceInDays(dateA, dateB)
isAfter Verifica se una data è successiva a un'altra dateFns.isAfter(dateA, dateB)
isBefore Verifica se una data è precedente a un'altra dateFns.isBefore(dateA, dateB)
startOfMonth Ottiene il primo giorno del mese dateFns.startOfMonth(date)
endOfYear Ottiene l'ultimo istante dell'anno dateFns.endOfYear(date)
formatDistance Differenza di tempo leggibile dall'uomo dateFns.formatDistance(dateA, dateB)

Riferimento ai token di formattazione

Token Descrizione Esempio
yyyy Anno a 4 cifre 2025
MM Mese a 2 cifre 01-12
MMMM Nome completo del mese January
dd Giorno a 2 cifre 01-31
do Giorno con ordinale 1st, 2nd, 3rd
EEEE Nome completo del giorno della settimana Monday
EEE Giorno della settimana abbreviato Mon
HH Ora in formato 24h 00-23
hh Ora in formato 12h 01-12
mm Minuti 00-59
ss Secondi 00-59
a AM/PM AM, PM