S jednou z týchto náhradných knižníc prejdite nad rámec vstavaných možností dátumu a času JavaScriptu.

Vstavaná podpora pre prácu s dátumom v JavaScripte je užitočná, ale jej používanie môže byť nepríjemné. Zložité operácie, ako sú prevody časového pásma a formátovanie dátumu, sú často náročné.

Našťastie je k dispozícii niekoľko balíkov, vďaka ktorým je práca s dátumami a časmi v JavaScripte menej stresujúca. Tu sa dozviete o niektorých z týchto balíkov a o tom, ako môžete začať pracovať na týchto balíkoch.

Pokiaľ ide o prácu s dátumami a časmi, natívny objekt Date JavaScript má obmedzenú funkčnosť.

Moment.js, knižnica JavaScript, zaviedla mnoho funkcií nedostupných v natívnom objekte Date. Výsledkom je, že sa stala vyhľadávanou knižnicou pre prácu s dátumami a časmi.

Ak chcete nainštalovať Moment.js s npm, spustite nasledujúci príkaz z adresára projektu:

npm Inštalácia moment

Po inštalácii môžete do projektu importovať súbor Moment.js a vykonávať operácie s knižnicou:

konšt moment = vyžadovať('moment');
konšt teraz = moment();
konšt nowString = now.format('RRRR-MM-DD HH: mm: ss');
instagram viewer

konzoly.log(`Aktuálny dátum a čas je ${nowString}`);

Tento útržok kódu importuje knižnicu Moment.js a vytvorí momentový objekt s použitím aktuálneho dátumu a času moment() funkciu. Potom ukazuje, ako naformátovať vytvorený dátumový objekt ako reťazec s formát() metóda, ktorá berie ako argument formát dátumu/času.

Túto knižnicu môžete použiť aj na sčítanie a odčítanie časových intervalov:

konšt addTenMinutes = moment().add(10, 'minúty');
konzoly.log(`${addTenMinutes.format('h: mm a')}`);

konšt subtractTwoDays = moment().subtract(2, 'dni');
konzoly.log(`${subtractTwoDays.format('dddd, MMMM Do YYYY')}`);

Program zaznamená do konzoly dve premenné v rôznych formátoch. Prvý, pridaťTenMinutes, obsahuje výsledok pridania 10 minút k aktuálnemu dátumu a času. Druhy, odpočítať dva dni, má hodnotu aktuálneho dátumu a času, od ktorej sa odpočítajú dva dni.

Moment.js môže vykonávať ďalšie operácie, ako je kontrola prestupných rokov a konverzia z jedného formátu dátumu na iný.

Je dôležité poznamenať, že súbor Moment.js už nespravuje jeho hlavný vývojársky tím. Vývojári odporúčajú použiť alternatívu, ako je Luxon.js.

Luxon.js je robustná a modernejšia JavaScriptová knižnica na prácu s dátumami. Alternatíva k Moment.js, rieši obmedzenia staršej knižnice, ako je mutabilita.

Luxon môžete nainštalovať pomocou npm a potom ho importovať Dátum Čas triedy vo vašom projekte Node.js pomocou súboru vyžadovať() funkcia:

konšt { DateTime } = vyžadovať('luxon');

V Luxone objekty DateTime odkazujú na časové inštancie, ktoré siahajú až do milisekúnd.

Môžete vytvoriť nový Dátum Čas objekty a prístup k ich komponentom, ako je rok, mesiac, minúta a sekunda:

konšt now = DateTime.now();
konšt rok = teraz.rok;
konšt minúta = teraz.minúta;
konšt druhý = teraz.druhý;

Tento kód vytvorí nový Dátum Čas objekt predstavujúci aktuálny dátum a čas pomocou teraz() metóda. Potom pristupuje ku komponentom tohto dátumu pomocou rok, minútu, a druhý vlastnosti.

Hlavným rozdielom medzi Luxon.js a Moment.js je jeho nemenný charakter. Všetky objekty DateTime sú v Luxone nemenné, čo znamená, že nemôžete upravovať vlastnosti DateTime. Namiesto toho môžete vytvoriť nové inštancie DateTime z existujúcich.

Napríklad:

konšt now = DateTime.now();
konšt zajtra = teraz.plus({ dni: 1 });

Tento kód vytvorí nový Dátum Čas objekt pomenovaný zajtra založený na teraz objekt, pomocou plus metódu, pričom jej ako argument odošlete hodnotu 1 deň. Metóda plus vytvorí nový objekt DateTime so zadaným počtom dní pridaných k pôvodnému objektu.

Ďalšou výhodou Luxon.js je spoľahlivá podpora časového pásma, ktorá je nevyhnutná pre prácu s dátumami a časmi v moderných webových aplikáciách. Knižnica využíva internacionalizačné API v moderných prehliadačoch, aby poskytovali presnú podporu časového pásma.

Jednou z nevýhod Luxon.js sú však obmedzené zdroje komunity.

Date-fns je veľmi ľahká knižnica JavaScript určená na prácu s dátumami a časmi. Stavia na natívnom objekte JavaScript.

Použitie Date-fns techniky funkčného programovania a obsahuje nemennú funkciu, ktorá uľahčuje prácu s dátumami a znižuje pravdepodobnosť chýb vo vašom kóde.

Po nainštalovaní date-fns pomocou npm importujte balík do svojho programu pomocou požadovanej funkcie:

konšt { format, addDays } = vyžadovať('date-fns');

Date-fns je modulárny. Obsahuje veľa funkcií, ku ktorým máte prístup deštrukciou balíka, ako je znázornené v bloku kódu vyššie. Kód importuje iba funkcie format a addDays z knižnice date-fns.

Tu je príklad použitia oboch týchto funkcií:

konšt dnes = NovýDátum();
konšt formattedDate = formát (dnes, 'yyyy-MM-dd');
konzoly.log (formattedDate);

konšt zajtra = formát (addDays (dnes, 1), 'yyyy-MM-dd');
konzoly.log (zajtra);

Tento program demonštruje používanie knižnice date-fns v JavaScripte na formátovanie a manipuláciu s dátumami.

Vytvára nový Dátum objekt predstavujúci aktuálny dátum. Formátuje aktuálny dátum pomocou formát funkciu z knižnice date-fns.

Potom použije addDays funkcia na vytvorenie nového objektu Date reprezentujúceho zajtrajší dátum, naformátuje ho pomocou formát a zaznamená aktuálny dátum aj zajtrajší dátum do konzoly v "yyyy-MM-dd“.

Nevýhodou používania Date-fns je, že neposkytuje podporu časového pásma. Namiesto toho používa samostatnú knižnicu na prácu s časovými pásmami pomocou pomocných funkcií.

Day.js, ďalšia veľmi ľahká knižnica, je dobrou voľbou, ak hľadáte nemennú, menšiu a rýchlejšiu alternatívu k Moment.js.

Day.js môžete nainštalovať ako balík vo svojom projekte JavaScript spustením nasledujúceho príkazu npm:

npm Inštalácia dayjs

Ak chcete po inštalácii importovať Day.js do svojho projektu, môžete použiť nasledujúci kód:

konšt dayjs = vyžadovať('dayjs')

Tu je niekoľko základných funkcií a metód dostupných v Day.js

konšt now = dayjs();

konšt dátum = dayjs('2023-03-23', 'RRRR-MM-DD');

konšt mesiac = datum.mesiac();

konšt formattedDate = date.format('MMMM D, YYYY');

konšt nextWeek = date.add(1, 'týždeň');

Vyššie uvedený kód vytvorí nový objekt Day.js predstavujúci aktuálny dátum a čas, analyzuje reťazec dátumu s vlastným formátom a získa mesiac z dátum premenlivý. Tiež ukazuje, ako formátovať a pridať inštanciu dátumu.

Rovnako ako Date-fns, ani Day.js nemôže poskytovať podporu časového pásma samostatne. Day.js používa systém doplnkov, vďaka čomu je jeho používanie mätúce.

Zo zahrnutých balíkov je Day.js najviac podobný Moment.js. V prípade potreby to uľahčuje prepínanie medzi nimi.

Výber správnej knižnice pre vašu aplikáciu

Výber správnej knižnice dátumu a času pre vašu aplikáciu JavaScript je dôležitým rozhodnutím, ktoré môže mať veľký vplyv na kvalitu a udržiavateľnosť vášho kódu.

Každá z knižníc, o ktorých sa tu hovorí, má svoje silné a slabé stránky, preto je dôležité, aby ste pred rozhodnutím dôkladne zhodnotili svoje požiadavky.