Treceți dincolo de capabilitățile de dată și oră încorporate ale JavaScript cu una dintre aceste biblioteci de înlocuire.

Suportul încorporat JavaScript pentru gestionarea datelor este util, dar poate fi dificil de utilizat. Operațiunile complexe, cum ar fi conversiile fusului orar și formatarea datei, sunt adesea provocatoare.

Din fericire, sunt disponibile mai multe pachete care fac lucrul cu date și ore în JavaScript mai puțin stresant. Aici veți afla despre unele dintre aceste pachete și despre cum puteți începe să lucrați la aceste pachete.

Când vine vorba de lucrul cu date și ore, obiectul nativ JavaScript Date are o funcționalitate limitată.

Moment.js, o bibliotecă JavaScript, a introdus multe caracteristici indisponibile în obiectul nativ Date. Drept urmare, a devenit biblioteca de bază pentru lucrul cu datele și orele.

Pentru a instala Moment.js cu npm, rulați următoarea comandă din directorul de proiect:

npm instalare moment

După instalare, puteți importa Moment.js în proiectul dvs. și puteți efectua operațiuni cu biblioteca:

instagram viewer
const moment = cere('moment');
const acum = moment();
const nowString = acum.format(„AAAA-LL-ZZ HH: mm: ss”);

consolă.Buturuga(„Data și ora curente sunt ${nowString}`);

Acest fragment de cod importă biblioteca Moment.js și creează un obiect moment folosind data și ora curente cu moment() funcţie. Apoi demonstrează cum se formatează obiectul data creat ca șir cu format() metoda, care ia ca argument un format dată/oră.

De asemenea, puteți utiliza această bibliotecă pentru a adăuga și scădea intervale de timp:

const addTenMinutes = moment().add(10, 'minute');
consolă.Buturuga(`${addTenMinutes.format('h: mm a')}`);

const subtractTwoDays = moment().subtract(2, „zile”);
consolă.Buturuga(`${subtractTwoDays.format(„dddd, MMMM face YYYY”)}`);

Programul înregistrează două variabile în consolă, în formate diferite. Primul, addTenMinutes, deține rezultatul adăugării a 10 minute la data și ora curente. Al doilea, scăderea Două Zile, are valoarea curentă a datei și orei cu două zile scăzute din aceasta.

Moment.js poate efectua alte operațiuni, cum ar fi verificarea pentru anii bisecți și conversia de la un format de dată la altul.

Este important de reținut că Moment.js nu mai este întreținut de echipa sa de dezvoltatori de bază. Dezvoltatorii recomandă utilizarea unei alternative precum Luxon.js.

Luxon.js este o bibliotecă JavaScript robustă și mai modernă pentru lucrul cu date. O alternativă la Moment.js, abordează limitările bibliotecii mai vechi, cum ar fi mutabilitatea.

Puteți instala Luxon cu npm și apoi îl puteți importa DateTime clasa din proiectul dvs. Node.js folosind cere() funcţie:

const { DateTime } = cere("luxon");

În Luxon, obiectele DateTime se referă la instanțe de timp care merg până la milisecunde.

Puteți crea noi DateTime obiecte și accesați componentele acestora, cum ar fi anul, luna, minutul și secunda:

const acum = DateTime.now();
const year = acum.an;
const minute = acum.minut;
const secunda = acum.secunda;

Acest cod creează un nou DateTime obiect reprezentând data și ora curentă folosind acum() metodă. Apoi accesează componentele datei respective utilizând an, minut, și al doilea proprietăți.

O diferență majoră între Luxon.js și Moment.js este caracterul său imuabil. Toate obiectele DateTime sunt imuabile în Luxon, ceea ce înseamnă că nu puteți modifica proprietățile DateTime. În schimb, puteți crea instanțe DateTime noi din cele existente.

De exemplu:

const acum = DateTime.now();
const maine = acum.plus({ zile: 1 });

Acest cod creează un nou DateTime obiect numit Mâine bazat pe acum obiect, folosind la care se adauga metoda, trecându-i o valoare de 1 zi ca argument. Metoda plus creează un nou obiect DateTime cu numărul specificat de zile adăugat la obiectul original.

Un alt avantaj al Luxon.js este suportul său fiabil pentru fusul orar, care este esențial pentru lucrul cu datele și orele în aplicațiile web moderne. Biblioteca foloseste API-ul de internaționalizare în browserele moderne pentru a oferi suport precis pentru fusul orar.

Cu toate acestea, unul dintre dezavantajele Luxon.js este resursele limitate ale comunității.

Date-fns este o bibliotecă JavaScript foarte ușoară, concepută pentru a lucra cu date și ore. Se bazează pe obiectul JavaScript nativ.

Date-fns utilizări tehnici de programare functionala și încorporează o caracteristică imuabilă, care simplifică lucrul cu datele și reduce probabilitatea de erori în codul dvs.

După instalarea date-fns cu npm, importați pachetul în program folosind funcția require:

const { format, addDays } = cere(„date-fns”);

Date-fns este modular. Conține o mulțime de funcții pe care le puteți accesa prin destructurarea pachetului, așa cum se arată în blocul de cod de mai sus. Codul importă doar funcțiile format și addDays din biblioteca date-fns.

Iată un exemplu de utilizare a ambelor funcții:

const azi = nouData();
const formattedDate = format (azi, „aaaa-LL-zz”);
consolă.log (formattedDate);

const tomorrow = format (addDays (azi, 1), „aaaa-LL-zz”);
consolă.log (mâine);

Acest program demonstrează utilizarea bibliotecii date-fns în JavaScript pentru a formata și a manipula datele.

Ea creează un nou Data obiect reprezentând data curentă. Formatează data curentă folosind format funcția din biblioteca date-fns.

Apoi folosește addDays pentru a crea un nou obiect Date reprezentând data de mâine, îl formatează folosind format funcția și înregistrează atât data curentă, cât și data de mâine pe consolă în "aaaa-LL-zzformatul ".

Un dezavantaj al folosirii Date-fns este că nu oferă suport pentru fusul orar. În schimb, folosește o bibliotecă separată pentru a lucra cu fusurile orare folosind funcții de ajutor.

Day.js, o altă bibliotecă foarte ușoară, este o alegere bună dacă căutați o alternativă imuabilă, mai mică și mai rapidă la Moment.js.

Puteți instala Day.js ca pachet în proiectul JavaScript rulând următoarea comandă npm:

npm instalare zilejs

Pentru a importa Day.js în proiectul dvs. după instalare, puteți utiliza următorul cod:

const dayjs = cere('dayjs')

Iată câteva funcții și metode de bază disponibile în Day.js

const acum = dayjs();

const data = dayjs('2023-03-23', „AAAA-LL-ZZ”);

const luna = data.luna();

const formattedDate = data.format(„MMMM D, YYYY”);

const următoarea săptămână = data.add(1, 'săptămână');

Codul de mai sus creează un nou obiect Day.js reprezentând data și ora curente, analizează un șir de dată cu un format personalizat și primește luna din Data variabil. De asemenea, arată cum să formatați și să adăugați la o instanță de dată.

La fel ca Date-fns, Day.js nu poate oferi suport pentru fusul orar singur. Day.js folosește un sistem de pluginuri, ceea ce face confuz de utilizat.

Dintre pachetele acoperite, Day.js este cel mai asemănător cu Moment.js. Acest lucru face mai ușor să comutați între cele două dacă este necesar.

Alegerea bibliotecii potrivite pentru aplicația dvs

Alegerea bibliotecii potrivite de dată și oră pentru aplicația dvs. JavaScript este o decizie importantă care poate avea un impact mare asupra calității și mentenanței codului dvs.

Fiecare dintre bibliotecile discutate aici are punctele sale forte și punctele slabe, așa că este important să vă evaluați cu atenție cerințele înainte de a lua o decizie.