Z eno od teh nadomestnih knjižnic presezite vgrajene zmožnosti datuma in časa JavaScripta.
Vgrajena podpora JavaScripta za rokovanje z datumi je uporabna, vendar je lahko nerodna za uporabo. Zapletene operacije, kot so pretvorbe časovnih pasov in oblikovanje datuma, so pogosto zahtevne.
Na srečo je na voljo več paketov, s katerimi je delo z datumi in časi v JavaScriptu manj stresno. Tukaj boste spoznali nekatere od teh paketov in kako lahko začnete delati na teh paketih.
Ko gre za delo z datumi in časi, izvorni objekt JavaScript Date ima omejeno funkcionalnost.
Moment.js, knjižnica JavaScript, je uvedla številne funkcije, ki niso na voljo v izvornem objektu Date. Posledično je postal knjižnica za delo z datumi in časi.
Če želite namestiti Moment.js z npm, zaženite naslednji ukaz iz imenika vašega projekta:
npm namestite trenutek
Po namestitvi lahko uvozite Moment.js v svoj projekt in izvajate operacije s knjižnico:
konst trenutek = zahtevati('trenutek');
konst zdaj = trenutek();
konst nowString = zdaj.format('LLLL-MM-DD HH: mm: ss');
konzola.log(`Trenutni datum in ura sta ${nowString}`);
Ta izrezek kode uvozi knjižnico Moment.js in ustvari trenutni objekt z uporabo trenutnega datuma in časa s trenutek() funkcijo. Nato prikazuje, kako oblikovati ustvarjeni datumski predmet kot niz z format() metoda, ki kot argument sprejme obliko zapisa datuma/časa.
To knjižnico lahko uporabite tudi za dodajanje in odštevanje časovnih intervalov:
konst addTenMinutes = moment().add(10, 'minute');
konzola.log(`${addTenMinutes.format('h: mm a')}`);
konst subtractTwoDays = moment().subtract(2, 'dnevi');
konzola.log(`${subtractTwoDays.format('dddd, MMMM do LLLL')}`);
Program v konzolo zabeleži dve spremenljivki v različnih formatih. Prvi, addTenMinutes, vsebuje rezultat dodajanja 10 minut trenutnemu datumu in času. Drugi, odštej dva dneva, ima trenutno vrednost datuma in časa, od katere sta odšteta dva dneva.
Moment.js lahko izvaja druge operacije, kot je preverjanje prestopnih let in pretvorba iz ene oblike datuma v drugo.
Pomembno je omeniti, da Moment.js ne vzdržuje več njegova osrednja skupina razvijalcev. Razvijalci svetujejo uporabo alternative, kot je Luxon.js.
Luxon.js je robustna in sodobnejša knjižnica JavaScript za delo z datumi. Kot alternativa Moment.js obravnava omejitve starejše knjižnice, kot je spremenljivost.
Luxon lahko namestite z npm in ga nato uvozite Datum čas razreda v vašem projektu Node.js z uporabo zahtevaj() funkcija:
konst {DateTime} = zahtevati('luxon');
V Luxonu se objekti DateTime nanašajo na časovne primere, ki segajo vse do milisekunde.
Ustvarite lahko novo Datum čas predmetov in dostop do njihovih komponent, kot so leto, mesec, minuta in sekunda:
konst zdaj = DateTime.now();
konst leto = zdaj.leto;
konst minuta = zdaj. minuta;
konst drugi = zdaj.drugi;
Ta koda ustvari novo Datum čas objekt, ki predstavlja trenutni datum in čas z uporabo zdaj() metoda. Nato dostopa do komponent tega datuma z uporabo leto, minuta, in drugo lastnosti.
Glavna razlika med Luxon.js in Moment.js je njegova nespremenljivost. Vsi objekti DateTime so v Luxonu nespremenljivi, kar pomeni, da ne morete spreminjati lastnosti DateTime. Namesto tega lahko ustvarite nove primerke DateTime iz obstoječih.
Na primer:
konst zdaj = DateTime.now();
konst jutri = zdaj.plus({ dnevi: 1 });
Ta koda ustvari novo Datum čas predmet imenovan jutri temelji na zdaj predmet, z uporabo plus metoda, ki ji posreduje vrednost 1 dan kot argument. Metoda plus ustvari nov objekt DateTime z določenim številom dni, dodanih izvirnemu objektu.
Druga prednost Luxon.js je njegova zanesljiva podpora za časovne pasove, ki je bistvena za delo z datumi in časi v sodobnih spletnih aplikacijah. Knjižnica uporablja API za internacionalizacijo v sodobnih brskalnikih za zagotavljanje natančne podpore za časovni pas.
Ena od slabosti Luxon.js pa so njegovi omejeni viri skupnosti.
Date-fns je zelo lahka knjižnica JavaScript, zasnovana za delo z datumi in časi. Gradi na izvirnem objektu JavaScript.
Date-fns uporablja tehnike funkcionalnega programiranja in vključuje nespremenljivo funkcijo, ki poenostavi delo z datumi in zmanjša verjetnost napak v vaši kodi.
Po namestitvi date-fns z npm uvozite paket v svoj program s funkcijo require:
konst { format, addDays } = zahtevati('datum-fns');
Date-fns je modularen. Vsebuje veliko funkcij, do katerih lahko dostopate z destrukturiranjem paketa, kot je prikazano v zgornjem bloku kode. Koda uvozi samo funkcije formata in addDays iz knjižnice date-fns.
Tu je primer uporabe obeh funkcij:
konst danes = novoDatum();
konst formattedDate = format (danes, 'llll-MM-dd');
konzola.log (formattedDate);
konst jutri = oblika (dodaj dneve (danes, 1), 'llll-MM-dd');
konzola.log (jutri);
Ta program prikazuje uporabo knjižnice date-fns v JavaScriptu za oblikovanje in obdelavo datumov.
Ustvarja novo Datum objekt, ki predstavlja trenutni datum. Oblikuje trenutni datum z uporabo format funkcijo iz knjižnice date-fns.
Nato uporabi addDays funkcijo za ustvarjanje novega predmeta Datum, ki predstavlja jutrišnji datum, ga oblikuje z uporabo format in zabeleži trenutni in jutrišnji datum v konzolo v "llll-MM-dd" format.
Slaba stran uporabe Date-fns je, da ne nudi podpore za časovni pas. Namesto tega uporablja ločeno knjižnico za delo s časovnimi pasovi s pomožnimi funkcijami.
Day.js, še ena zelo lahka knjižnica, je dobra izbira, če iščete nespremenljivo, manjšo in hitrejšo alternativo Moment.js.
Day.js lahko namestite kot paket v svoj projekt JavaScript tako, da zaženete naslednji ukaz npm:
npm namestite dayjs
Če želite uvoziti Day.js v svoj projekt po namestitvi, lahko uporabite naslednjo kodo:
konst dayjs = zahtevati('dayjs')
Tukaj je nekaj osnovnih funkcij in metod, ki so na voljo v Day.js
konst zdaj = dayjs();
konst datum = dayjs('2023-03-23', 'LLLL-MM-DD');
konst mesec = datum.mesec();
konst formattedDate = date.format('MMMM D, LLLL');
konst naslednji teden = datum.dodaj(1, 'teden');
Zgornja koda ustvari nov objekt Day.js, ki predstavlja trenutni datum in uro, razčleni datumski niz z obliko po meri in pridobi mesec iz datum spremenljivka. Pokaže tudi, kako formatirati in dodati primerek datuma.
Tako kot Date-fns tudi Day.js ne more zagotoviti podpore za časovni pas sam. Day.js uporablja sistem vtičnikov, zaradi česar je uporaba zmešnjava.
Od zajetih paketov je Day.js najbolj podoben Moment.js. To olajša preklapljanje med obema, če je potrebno.
Izbira prave knjižnice za vašo aplikacijo
Izbira prave knjižnice datumov in ur za vašo aplikacijo JavaScript je pomembna odločitev, ki lahko močno vpliva na kakovost in vzdržljivost vaše kode.
Vsaka od tukaj obravnavanih knjižnic ima svoje prednosti in slabosti, zato je pomembno, da skrbno ocenite svoje zahteve, preden se odločite.