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');
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.