Izmantojiet kādu no šīm aizstāšanas bibliotēkām, kas pārsniedz JavaScript iebūvētās datuma un laika iespējas.

JavaScript iebūvētais datu apstrādes atbalsts ir noderīgs, taču to lietošana var būt neērta. Sarežģītas darbības, piemēram, laika joslu konvertēšana un datuma formatēšana, bieži vien ir sarežģītas.

Par laimi, ir pieejamas vairākas pakotnes, kas padara darbu ar datumiem un laikiem JavaScript mazāk saspringtu. Šeit jūs uzzināsit par dažām no šīm pakotnēm un to, kā varat sākt darbu pie šīm pakotnēm.

Kad runa ir par darbu ar datumiem un laikiem, vietējais JavaScript datuma objekts ir ierobežota funkcionalitāte.

Moment.js, JavaScript bibliotēka, ieviesa daudzas funkcijas, kas nav pieejamas sākotnējā Datuma objektā. Rezultātā tā ir kļuvusi par bibliotēku darbam ar datumiem un laikiem.

Lai instalētu Moment.js ar npm, palaidiet šo komandu no sava projekta direktorija:

npm uzstādīt brīdis

Pēc instalēšanas varat importēt Moment.js savā projektā un veikt darbības ar bibliotēku:

konst brīdis = pieprasīt('mirklis');
konst tagad = moments();
konst nowString = tagad.format(“GGGG-MM-DD HH: mm: ss”);

konsole.log(`Pašreizējais datums un laiks ir ${nowString}`);

Šis koda fragments importē Moment.js bibliotēku un izveido momenta objektu, izmantojot pašreizējo datumu un laiku ar brīdis () funkciju. Pēc tam tiek parādīts, kā izveidoto datuma objektu formatēt kā virkni ar formāts () metodi, kas kā argumentu izmanto datuma/laika formātu.

Varat arī izmantot šo bibliotēku, lai pievienotu un atņemtu laika intervālus:

konst addTenMinutes = moments().add(10, 'minūtes');
konsole.log(`${addTenMinutes.format("h: mm a")}`);

konst subtractTwoDays = moments().atņemt(2, 'dienas');
konsole.log(`${subtractTwoDays.format("ddd, MMMM Do GGGG")}`);

Programma konsolē reģistrē divus mainīgos dažādos formātos. Pirmais, pievienojiet desmit minūtes, saglabā rezultātu, ja pašreizējam datumam un laikam tiek pievienotas 10 minūtes. Otrais, atņemt Divas dienas, ir pašreizējā datuma un laika vērtība, no kuras tiek atņemtas divas dienas.

Moment.js var veikt citas darbības, piemēram, pārbaudīt garo gadu un konvertēt no viena datuma formāta uz citu.

Ir svarīgi atzīmēt, ka Moment.js vairs neuztur tā galvenā izstrādātāju komanda. Izstrādātāji iesaka izmantot tādu alternatīvu kā Luxon.js.

Luxon.js ir stabila un modernāka JavaScript bibliotēka darbam ar datumiem. Alternatīva Moment.js, tā pievēršas vecākās bibliotēkas ierobežojumiem, piemēram, mainīgumam.

Jūs varat instalēt Luxon ar npm un pēc tam importēt to Datums Laiks klase jūsu Node.js projektā, izmantojot prasīt () funkcija:

konst { DateTime } = pieprasīt("Luksons");

Programmā Luxon DateTime objekti attiecas uz laika gadījumiem, kas iet līdz pat milisekundēm.

Jūs varat izveidot jaunu Datums Laiks objektiem un piekļūt to komponentiem, piemēram, gadam, mēnesim, minūtei un sekundei:

konst tagad = DatumsLaiks.tagad();
konst gads = tagad.gads;
konst minūte = tagad.minūte;
konst otrais = tagad.otrais;

Šis kods izveido jaunu Datums Laiks objekts, kas attēlo pašreizējo datumu un laiku, izmantojot tagad () metodi. Pēc tam tas piekļūst šī datuma komponentiem, izmantojot gadā, minūte, un otrais īpašības.

Galvenā atšķirība starp Luxon.js un Moment.js ir tā nemainīgais raksturs. Visi DateTime objekti programmā Luxon ir nemainīgi, kas nozīmē, ka jūs nevarat modificēt DateTime rekvizītus. Tā vietā varat izveidot jaunus DateTime gadījumus no esošajiem.

Piemēram:

konst tagad = DatumsLaiks.tagad();
konst rīt = tagad.plus({ dienas: 1 });

Šis kods izveido jaunu Datums Laiks objekts nosaukts rīt pamatojoties uz tagad objektu, izmantojot plus metodi, nododot tai 1 dienas vērtību kā argumentu. Plus metode izveido jaunu DateTime objektu ar norādīto dienu skaitu, kas pievienots sākotnējam objektam.

Vēl viena Luxon.js priekšrocība ir tā uzticamais laika joslu atbalsts, kas ir būtisks darbam ar datumiem un laikiem mūsdienu tīmekļa lietojumprogrammās. Bibliotēka izmanto internacionalizācijas API mūsdienu pārlūkprogrammās, lai nodrošinātu precīzu laika joslu atbalstu.

Tomēr viens no Luxon.js trūkumiem ir tā ierobežotie kopienas resursi.

Date-fns ir ļoti viegla JavaScript bibliotēka, kas paredzēta darbam ar datumiem un laikiem. Tā pamatā ir vietējais JavaScript objekts.

Datums-fns lietojumi funkcionālās programmēšanas metodes un ietver nemainīgu funkciju, kas padara darbu ar datumiem vienkāršāku un samazina kļūdu iespējamību jūsu kodā.

Pēc date-fns instalēšanas ar npm, importējiet pakotni savā programmā, izmantojot prasību funkciju:

konst { format, addDays } = pieprasīt('date-fns');

Datums-fns ir modulārs. Tajā ir daudz funkciju, kurām varat piekļūt, iznīcinot pakotni, kā parādīts iepriekš esošajā koda blokā. Kods importē tikai formātu un addDays funkcijas no datuma-fns bibliotēkas.

Šeit ir piemērs, kā izmantot abas šīs funkcijas:

konst šodien = jaunsDatums();
konst formattedDate = formāts (šodien, 'gggg-MM-dd');
konsole.log (formattedDate);

konst rīt = formāts (addDays (šodien, 1), 'gggg-MM-dd');
konsole.log (rīt);

Šī programma demonstrē datuma-fns bibliotēkas izmantošanu JavaScript, lai formatētu un apstrādātu datumus.

Tas rada jaunu Datums objekts, kas attēlo pašreizējo datumu. Tas formatē pašreizējo datumu, izmantojot formātā funkciju no datuma-fns bibliotēkas.

Pēc tam tas izmanto pievienot dienas funkciju, lai izveidotu jaunu Datuma objektu, kas attēlo rītdienas datumu, formatē to, izmantojot formātā funkciju un reģistrē gan pašreizējo datumu, gan rītdienas datumu konsolē "gggg-MM-dd" formātā.

Date-fns izmantošanas trūkums ir tas, ka tas nenodrošina laika joslu atbalstu. Tā vietā tā izmanto atsevišķu bibliotēku, lai strādātu ar laika joslām, izmantojot palīgfunkcijas.

Day.js, vēl viena ļoti viegla bibliotēka, ir laba izvēle, ja meklējat nemainīgu, mazāku un ātrāku alternatīvu Moment.js.

Varat instalēt Day.js kā pakotni savā JavaScript projektā, izpildot šo npm komandu:

npm uzstādīt dayjs

Lai pēc instalēšanas projektā importētu Day.js, varat izmantot šādu kodu:

konst dayjs = pieprasīt('dayjs')

Šeit ir dažas pamatfunkcijas un metodes, kas pieejamas vietnē Day.js

konst tagad = dayjs();

konst datums = dayjs('2023-03-23', 'GGGG-MM-DD');

konst mēnesis = datums.mēnesis();

konst formattedDate = date.format(“MMMM D, GGGG”);

konst nextWeek = date.add(1, 'nedēļa');

Iepriekš minētais kods izveido jaunu Day.js objektu, kas attēlo pašreizējo datumu un laiku, parsē datuma virkni pielāgotā formātā un iegūst mēnesi no datums mainīgs. Tas arī parāda, kā formatēt un pievienot datuma gadījumu.

Tāpat kā Date-fns, arī Day.js nevar nodrošināt laika joslu atbalstu. Day.js izmanto spraudņu sistēmu, kas padara to mulsinošu lietošanu.

No aptvertajām pakotnēm Day.js ir vislīdzīgākais Moment.js. Tas atvieglo pārslēgšanos starp abiem, ja nepieciešams.

Piemērotas bibliotēkas izvēle savai lietotnei

Pareiza datuma un laika bibliotēkas izvēle JavaScript lietojumprogrammai ir svarīgs lēmums, kas var būtiski ietekmēt jūsu koda kvalitāti un apkopi.

Katrai no šeit aplūkotajām bibliotēkām ir savas stiprās un vājās puses, tāpēc pirms lēmuma pieņemšanas ir svarīgi rūpīgi izvērtēt savas prasības.