Minge JavaScripti sisseehitatud kuupäeva ja kellaaja võimalustest kaugemale ühega neist asendusteekidest.

JavaScripti sisseehitatud tugi kuupäeva käsitlemiseks on kasulik, kuid selle kasutamine võib olla ebamugav. Keerulised toimingud, nagu ajavööndi teisendamine ja kuupäeva vormindamine, on sageli keerulised.

Õnneks on saadaval mitu paketti, mis muudavad JavaScriptis kuupäevade ja kellaaegadega töötamise pingevabamaks. Siit saate teada mõne neist pakettidest ja sellest, kuidas saate nende pakettidega tööd alustada.

Kuupäevade ja kellaaegadega töötades native JavaScript Date objekt on piiratud funktsionaalsusega.

JavaScripti teek Moment.js tutvustas paljusid funktsioone, mis pole Date objektis saadaval. Selle tulemusena on see muutunud kuupäevade ja kellaaegadega töötamiseks mõeldud raamatukoguks.

Moment.js-i installimiseks koos npm-iga käivitage oma projektikataloogist järgmine käsk:

npm installida hetk

Pärast installimist saate importida Moment.js-i oma projekti ja teha teegiga toiminguid:

konst hetk = nõuda('hetk');
konst nüüd = hetk();
konst nowString = now.format(„AAAA-KK-PP HH: mm: ss”);

konsool.log(`Praegune kuupäev ja kellaaeg on ${nowString}`);

See koodilõik impordib teegi Moment.js ja loob hetkeobjekti, kasutades praegust kuupäeva ja kellaaega hetk () funktsiooni. Seejärel demonstreerib see, kuidas vormindada loodud kuupäevaobjekti stringina koos formaat () meetod, mis võtab argumendiks kuupäeva/kellaaja vormingu.

Seda teeki saate kasutada ka ajavahemike liitmiseks ja lahutamiseks:

konst addTenMinutes = moment().add(10, 'minutid');
konsool.log(`${addTenMinutes.format("h: mm a")}`);

konst lahutaKaks päeva = hetk().subtract(2, 'päevad');
konsool.log(`${subtractTwoDays.format("ppdd, MMMM Do YYYY")}`);

Programm logib konsooli kaks muutujat, erinevas vormingus. Esimene, lisa kümme minutit, säilitab praegusele kuupäevale ja kellaajale 10 minuti lisamise tulemuse. Teine, lahutada kaks päeva, millel on praegune kuupäeva ja kellaaja väärtus, millest lahutatakse kaks päeva.

Moment.js saab teha muid toiminguid, nagu liigaaastate kontrollimine ja ühest kuupäevavormingust teise teisendamine.

Oluline on märkida, et Moment.js-i ei halda enam selle põhiarendajameeskond. Arendajad soovitavad kasutada sellist alternatiivi nagu Luxon.js.

Luxon.js on jõuline ja kaasaegsem JavaScripti teek kuupäevadega töötamiseks. Alternatiiv Moment.js-ile, see käsitleb vanema teegi piiranguid, nagu muutlikkus.

Saate installida Luxoni npm-iga ja seejärel selle importida Kuupäev Kellaaeg klassi oma Node.js projektis kasutades nõua () funktsioon:

konst { DateTime } = nõuda('luxon');

Luxonis viitavad DateTime objektid ajajuhtumitele, mis ulatuvad kuni millisekunditeni.

Saate luua uue Kuupäev Kellaaeg objekte ja pääseda juurde nende komponentidele, nagu aasta, kuu, minut ja sekund:

konst nüüd = DateTime.now();
konst aasta = praegu.aasta;
konst minut = praegu. minut;
konst teine ​​= nüüd.teine;

See kood loob uue Kuupäev Kellaaeg objekt, mis tähistab praegust kuupäeva ja kellaaega, kasutades nüüd () meetod. Seejärel pääseb see juurde selle kuupäeva komponentidele, kasutades aastal, minut, ja teiseks omadused.

Peamine erinevus Luxon.js'i ja Moment.js'i vahel on selle muutumatu iseloom. Kõik DateTime objektid on Luxonis muutumatud, mis tähendab, et te ei saa DateTime atribuute muuta. Selle asemel saate luua uusi DateTime eksemplare olemasolevatest.

Näiteks:

konst nüüd = DateTime.now();
konst homme = kohe.plus({ päevadel: 1 });

See kood loob uue Kuupäev Kellaaeg objekt nimega homme põhinedes nüüd objekti, kasutades pluss meetodit, edastades sellele argumendina väärtuse 1 päev. Plussmeetod loob uue DateTime objekti, mille algobjektile lisatakse määratud arv päevi.

Luxon.js-i eeliseks on ka selle usaldusväärne ajavööndi tugi, mis on tänapäevastes veebirakendustes kuupäevade ja kellaaegadega töötamiseks hädavajalik. Raamatukogu kasutab rahvusvahelistumise API kaasaegsetes brauserites, et pakkuda täpset ajavööndi tuge.

Üks Luxon.js-i varjukülgi on aga selle piiratud kogukonna ressursid.

Date-fns on väga kerge JavaScripti teek, mis on loodud kuupäevade ja kellaaegadega töötamiseks. See põhineb natiivsel JavaScripti objektil.

Date-fns kasutab funktsionaalse programmeerimise tehnikad ja sisaldab muutumatut funktsiooni, mis muudab kuupäevadega töötamise lihtsamaks ja vähendab teie koodis esinevate vigade tõenäosust.

Pärast date-fns-i installimist koos npm-iga importige pakett oma programmi, kasutades funktsiooni Nõude:

konst { vorming, lisapäevad } = nõuda('date-fns');

Date-fns on modulaarne. See sisaldab palju funktsioone, millele pääsete juurde paketi destruktureerimise teel, nagu on näidatud ülaltoodud koodiplokis. Kood impordib kuupäeva-fns teegist ainult vormingu ja addDays funktsioonid.

Siin on näide mõlema funktsiooni kasutamisest.

konst täna = uusKuupäev();
konst formattedDate = vorming (täna, 'aaaa-KK-pp');
konsool.log (formattedDate);

konst homme = vorming (addDays (täna, 1), 'aaaa-KK-pp');
konsool.log (homme);

See programm demonstreerib kuupäeva-fns teegi kasutamist JavaScriptis kuupäevade vormindamiseks ja manipuleerimiseks.

See loob uue Kuupäev objekt, mis tähistab praegust kuupäeva. See vormindab praeguse kuupäeva, kasutades vormingus funktsioon date-fn teegist.

Seejärel kasutab see lisapäevi funktsioon, et luua uus Date objekt, mis esindab homset kuupäeva, vormindab selle kasutades vormingus funktsiooni ja logib nii praeguse kui ka homse kuupäeva konsooli "aaaa-KK-pp"vormingus.

Date-fnsi kasutamise negatiivne külg on see, et see ei paku ajavööndi tuge. Selle asemel kasutab see ajavöönditega töötamiseks abifunktsioone kasutades eraldi teeki.

Day.js, teine ​​väga kerge teek, on hea valik, kui otsite Moment.js-ile muutumatut, väiksemat ja kiiremat alternatiivi.

Saate installida Day.js-i oma JavaScripti projekti paketina, käivitades järgmise npm-käsu:

npm installida dayjs

Day.js-i importimiseks oma projekti pärast installimist saate kasutada järgmist koodi.

konst dayjs = nõuda("dayjs")

Siin on mõned Day.js-i põhifunktsioonid ja meetodid

konst nüüd = dayjs();

konst kuupäev = dayjs('2023-03-23', 'AAAA-KK-PP');

konst kuu = kuupäev.kuu();

konst formattedDate = date.format(„MMMM D, YYYY”);

konst nextWeek = date.add(1, 'nädal');

Ülaltoodud kood loob uue Day.js objekti, mis esindab praegust kuupäeva ja kellaaega, analüüsib kohandatud vorminguga kuupäevastringi ja hangib kuu kuupäev muutuv. See näitab ka, kuidas vormindada ja lisada kuupäeva eksemplari.

Nagu Date-fns, ei saa Day.js üksi ajavööndi tuge pakkuda. Day.js kasutab pistikprogrammide süsteemi, mis muudab selle kasutamise segaseks.

Kaetud pakettidest on Day.js kõige sarnasem Moment.js-iga. See muudab vajaduse korral nende kahe vahel vahetamise lihtsamaks.

Rakenduse jaoks õige teegi valimine

JavaScripti rakenduse jaoks õige kuupäeva ja kellaaja teegi valimine on oluline otsus, millel võib olla suur mõju teie koodi kvaliteedile ja hooldatavusele.

Igal siin käsitletud raamatukogul on oma tugevad ja nõrgad küljed, seega on oluline enne otsuse tegemist oma nõudeid hoolikalt hinnata.