Vai oltre le funzionalità di data e ora integrate in JavaScript con una di queste librerie sostitutive.
Il supporto integrato di JavaScript per la gestione della data è utile, ma può essere scomodo da usare. Le operazioni complesse come le conversioni di fuso orario e la formattazione della data sono spesso impegnative.
Fortunatamente, sono disponibili diversi pacchetti che rendono meno stressante lavorare con date e orari in JavaScript. Qui imparerai alcuni di questi pacchetti e come puoi iniziare a lavorare su questi pacchetti.
Quando si tratta di lavorare con date e orari, l'oggetto Date JavaScript nativo ha funzionalità limitate.
Moment.js, una libreria JavaScript, ha introdotto molte funzionalità non disponibili nell'oggetto Date nativo. Di conseguenza, è diventata la libreria di riferimento per lavorare con date e orari.
Per installare Moment.js con npm, esegui il seguente comando dalla directory del tuo progetto:
npm installare momento
Dopo l'installazione, puoi importare Moment.js nel tuo progetto ed eseguire operazioni con la libreria:
cost momento = richiedere('momento');
cost adesso = momento();
cost nowString = now.format('AAAA-MM-GG HH: mm: ss');
consolare.tronco d'albero(`La data e l'ora correnti sono ${nowString}`);
Questo frammento di codice importa la libreria Moment.js e crea un oggetto momento utilizzando la data e l'ora correnti con il momento() funzione. Quindi dimostra come formattare l'oggetto data creato come una stringa con l'estensione formato() metodo, che accetta un formato data/ora come argomento.
Puoi anche utilizzare questa libreria per aggiungere e sottrarre intervalli di tempo:
cost addDieciMinuti = momento().add(10, 'minuti');
consolare.tronco d'albero(`${addTenMinutes.format('h: mm a')}`);
cost subtractTwoDays = moment().subtract(2, 'giorni');
consolare.tronco d'albero(`${subtractTwoDays.format('dddd, MMMM Fai AAAA')}`);
Il programma registra due variabili nella console, in diversi formati. Il primo, addDieciMinuti, contiene il risultato dell'aggiunta di 10 minuti alla data e all'ora correnti. Il secondo, sottraiDueGiorni, ha il valore di data e ora correnti a cui vengono sottratti due giorni.
Moment.js può eseguire altre operazioni come il controllo degli anni bisestili e la conversione da un formato di data a un altro.
È importante notare che Moment.js non è più gestito dal suo team di sviluppatori principale. Gli sviluppatori consigliano di utilizzare un'alternativa come Luxon.js.
Luxon.js è una libreria JavaScript robusta e più moderna per lavorare con le date. Un'alternativa a Moment.js, risolve i limiti della vecchia libreria come la mutabilità.
Puoi installare Luxon con npm e quindi importarlo Appuntamento class nel tuo progetto Node.js usando il richiedere() funzione:
cost {DataOra} = richiedere('lusso');
In Luxon, gli oggetti DateTime si riferiscono a istanze temporali che arrivano fino a millisecondi.
Puoi crearne di nuovi Appuntamento oggetti e accedi ai loro componenti, come anno, mese, minuto e secondo:
cost ora = DataOra.ora();
cost anno = ora.anno;
cost minuto = adesso.minuto;
cost secondo = adesso.secondo;
Questo codice crea un nuovo Appuntamento oggetto che rappresenta la data e l'ora correnti utilizzando l' Ora() metodo. Quindi accede ai componenti di quella data utilizzando il file anno, minuto, E secondo proprietà.
Una delle principali differenze tra Luxon.js e Moment.js è il suo carattere immutabile. Tutti gli oggetti DateTime sono immutabili in Luxon, il che significa che non è possibile modificare le proprietà DateTime. Invece, puoi creare nuove istanze DateTime da quelle esistenti.
Per esempio:
cost ora = DataOra.ora();
cost domani = ora.plus({ giorni: 1 });
Questo codice crea un nuovo Appuntamento oggetto denominato Domani basato sul Ora oggetto, utilizzando il più metodo, passandogli un valore di 1 giorno come argomento. Il metodo plus crea un nuovo oggetto DateTime con il numero specificato di giorni aggiunti all'oggetto originale.
Un altro vantaggio di Luxon.js è il suo affidabile supporto del fuso orario, essenziale per lavorare con date e orari nelle moderne applicazioni web. La biblioteca utilizza l'API di internazionalizzazione nei browser moderni per fornire un supporto accurato del fuso orario.
Tuttavia, uno degli aspetti negativi di Luxon.js sono le limitate risorse della community.
Date-fns è una libreria JavaScript molto leggera progettata per lavorare con date e orari. Si basa sull'oggetto JavaScript nativo.
Usi di Date-fns tecniche di programmazione funzionale e incorpora una funzionalità immutabile, che semplifica il lavoro con le date e riduce la probabilità di bug nel codice.
Dopo aver installato date-fns con npm, importa il pacchetto nel tuo programma usando la funzione require:
cost { formato, addDays } = richiedere('date-fns');
Date-fns è modulare. Contiene molte funzioni a cui puoi accedere destrutturando il pacchetto, come mostrato nel blocco di codice sopra. Il codice importa solo le funzioni format e addDays dalla libreria date-fns.
Ecco un esempio di come utilizzare entrambe queste funzioni:
cost oggi = nuovoData();
cost formattedDate = formato (oggi, 'aaaa-MM-gg');
consolare.log (data formattata);
cost domani = formato (addDays (oggi, 1), 'aaaa-MM-gg');
consolare.log (domani);
Questo programma dimostra l'utilizzo della libreria date-fns in JavaScript per formattare e manipolare le date.
Crea un nuovo Data oggetto che rappresenta la data corrente. Formatta la data corrente utilizzando il formato formato funzione dalla libreria date-fns.
Quindi utilizza il file addDays funzione per creare un nuovo oggetto Date che rappresenta la data di domani, lo formatta utilizzando il formato funzione e registra sia la data corrente che la data di domani nella console in "aaaa-MM-gg" formato.
Uno svantaggio dell'utilizzo di Date-fns è che non fornisce supporto per il fuso orario. Invece, utilizza una libreria separata per lavorare con i fusi orari utilizzando le funzioni di supporto.
Day.js, un'altra libreria molto leggera, è una buona scelta se stai cercando un'alternativa immutabile, più piccola e più veloce a Moment.js.
Puoi installare Day.js come pacchetto nel tuo progetto JavaScript eseguendo il seguente comando npm:
npm installare dayjs
Per importare Day.js nel tuo progetto dopo l'installazione, puoi utilizzare il seguente codice:
cost giornojs = richiedere('giorni')
Ecco alcune funzioni e metodi di base disponibili in Day.js
cost ora = giornojs();
cost data = giornojs('2023-03-23', 'AAAA-MM-GG');
cost mese = data.mese();
cost dataformattata = data.formato('MMMM D, AAAA');
cost settimana successiva = data.add(1, 'settimana');
Il codice precedente crea un nuovo oggetto Day.js che rappresenta la data e l'ora correnti, analizza una stringa di data con un formato personalizzato e ottiene il mese dal data variabile. Mostra anche come formattare e aggiungere a un'istanza di data.
Come Date-fns, Day.js non può fornire il supporto del fuso orario da solo. Day.js utilizza un sistema di plugin, rendendolo confuso da usare.
Dei pacchetti coperti, Day.js è il più simile a Moment.js. Questo rende più facile passare da uno all'altro se necessario.
Scegliere la libreria giusta per la tua app
La scelta della libreria di data e ora corretta per la tua applicazione JavaScript è una decisione importante che può avere un grande impatto sulla qualità e sulla manutenibilità del tuo codice.
Ognuna delle librerie discusse qui ha i suoi punti di forza e di debolezza, quindi è importante valutare attentamente i requisiti prima di prendere una decisione.