Išplėskite „JavaScript“ integruotas datos ir laiko galimybes naudodami vieną iš šių pakaitinių bibliotekų.

„JavaScript“ integruotas datos tvarkymo palaikymas yra naudingas, tačiau jį naudoti gali būti nepatogu. Sudėtingos operacijos, tokios kaip laiko juostos konvertavimas ir datos formatavimas, dažnai yra sudėtingos.

Laimei, yra keletas paketų, dėl kurių darbas su datomis ir laiku „JavaScript“ yra mažiau įtemptas. Čia sužinosite apie kai kuriuos iš šių paketų ir kaip galite pradėti dirbti su šiais paketais.

Kai reikia dirbti su datomis ir laiku, vietinis JavaScript datos objektas turi ribotą funkcionalumą.

„Moment.js“, „JavaScript“ biblioteka, pristatė daug funkcijų, kurių nėra vietiniame Datos objekte. Dėl to ji tapo pagrindine biblioteka, skirta dirbti su datomis ir laiku.

Norėdami įdiegti Moment.js su npm, paleiskite šią komandą iš savo projekto katalogo:

npm diegti momentas

Įdiegę galite importuoti Moment.js į savo projektą ir atlikti operacijas su biblioteka:

konst akimirka = reikalauti('momentas');
konst dabar = momentas ();
konst nowString = now.format(„YYYY-MM-DD HH: mm: ss“);
instagram viewer

konsolė.log(„Dabartinė data ir laikas yra ${nowString}`);

Šis kodo fragmentas importuoja Moment.js biblioteką ir sukuria momento objektą, naudodamas dabartinę datą ir laiką su momentas() funkcija. Tada parodoma, kaip suformatuoti sukurtą datos objektą kaip eilutę su formatas () metodas, kurio argumentas yra datos / laiko formatas.

Taip pat galite naudoti šią biblioteką laiko intervalams pridėti ir atimti:

konst addTenMinutes = momentas().add(10, "minutės");
konsolė.log(`${addTenMinutes.format("h: mm a")}`);

konst subtractTwoDays = momentas().atimti(2, 'dienos');
konsolė.log(`${subtractTwoDays.format(„dddd, MMMM Do YYYY“)}`);

Programa į konsolę įrašo du kintamuosius skirtingais formatais. Pirmas, pridėti TenMinutes, saugo 10 minučių pridėjimo prie dabartinės datos ir laiko rezultatą. Antras, atimti dvi dienas, turi dabartinę datos ir laiko reikšmę, iš jos atėmus dvi dienas.

Moment.js gali atlikti kitas operacijas, pvz., tikrinti keliamuosius metus ir konvertuoti iš vieno datos formato į kitą.

Svarbu pažymėti, kad „Moment.js“ nebeprižiūri pagrindinė kūrėjų komanda. Kūrėjai pataria naudoti tokią alternatyvą kaip Luxon.js.

Luxon.js yra tvirta ir modernesnė „JavaScript“ biblioteka, skirta darbui su datomis. Alternatyva Moment.js, ji sprendžia senesnės bibliotekos apribojimus, tokius kaip kintamumas.

Galite įdiegti Luxon naudodami npm ir importuoti DataLaikas klasę savo Node.js projekte naudodami reikalauti () funkcija:

konst { DateTime } = reikalauti("Luksonas");

„Luxon“ sistemoje DateTime objektai nurodo laiko atvejus, kurie sutrumpėja iki milisekundžių.

Galite sukurti naują DataLaikas objektus ir pasiekti jų komponentus, pvz., metus, mėnesį, minutę ir sekundę:

konst dabar = DataLaikas.dabar();
konst metai = dabar.metai;
konst minutė = dabar.minute;
konst antras = dabar.antras;

Šis kodas sukuria naują DataLaikas objektas, vaizduojantis dabartinę datą ir laiką, naudojant dabar () metodas. Tada jis pasiekia tos datos komponentus naudodamas metų, minutė, ir antra savybių.

Pagrindinis skirtumas tarp Luxon.js ir Moment.js yra jo nekintantis pobūdis. Visi DateTime objektai yra nekeičiami Luxon, tai reiškia, kad negalite keisti DateTime savybių. Vietoj to galite sukurti naujus DateTime egzempliorius iš esamų.

Pavyzdžiui:

konst dabar = DataLaikas.dabar();
konst rytoj = dabar.plus({ dienų: 1 });

Šis kodas sukuria naują DataLaikas pavadintas objektas rytoj remiantis dabar objektas, naudojant pliusas metodą, perduodant jam 1 dienos reikšmę kaip argumentą. Pliuso metodas sukuria naują DateTime objektą su nurodytu dienų skaičiumi, pridėtu prie pradinio objekto.

Kitas Luxon.js pranašumas yra patikimas laiko juostos palaikymas, kuris yra būtinas dirbant su datomis ir laiku šiuolaikinėse žiniatinklio programose. Biblioteka naudojasi Internacionalizacijos API šiuolaikinėse naršyklėse, kad būtų galima tiksliai palaikyti laiko juostą.

Tačiau vienas iš Luxon.js minusų yra riboti bendruomenės ištekliai.

Date-fns yra labai lengva JavaScript biblioteka, skirta dirbti su datomis ir laiku. Jis pagrįstas vietiniu JavaScript objektu.

Data-fns naudojimas funkcinio programavimo technikos ir apima nekintamą funkciją, kuri palengvina darbą su datomis ir sumažina kodo klaidų tikimybę.

Įdiegę date-fns su npm, importuokite paketą į savo programą naudodami reikalavimo funkciją:

konst { format, addDays } = reikalauti("data-fns");

Data-fns yra modulinis. Jame yra daug funkcijų, kurias galite pasiekti sunaikinę paketą, kaip parodyta aukščiau esančiame kodo bloke. Kodas importuoja tik formatą ir addDays funkcijas iš date-fns bibliotekos.

Štai pavyzdys, kaip naudoti abi šias funkcijas:

konst šiandien = naujasData();
konst formattedDate = formatas (šiandien, 'yyyy-MM-dd');
konsolė.log (formattedDate);

konst rytoj = formatas (addDays (šiandien, 1), 'yyyy-MM-dd');
konsolė.log (rytoj);

Ši programa demonstruoja „JavaScript“ datos-fns bibliotekos naudojimą datoms formatuoti ir manipuliuoti.

Tai sukuria naują Data objektas, vaizduojantis dabartinę datą. Jis suformatuoja dabartinę datą naudodamas formatu funkcija iš date-fn bibliotekos.

Tada jis naudoja AddDays funkcija sukurti naują datos objektą, atspindintį rytojaus datą, suformatuoti jį naudodami formatu funkciją ir įregistruoja dabartinę ir rytojaus datą konsolėje „yyyy-MM-dd“ formatu.

Date-fns naudojimo trūkumas yra tas, kad jis nepalaiko laiko juostos. Vietoj to, ji naudoja atskirą biblioteką darbui su laiko juostomis, naudodama pagalbines funkcijas.

Day.js, kita labai lengva biblioteka, yra geras pasirinkimas, jei ieškote nekintamos, mažesnės ir greitesnės alternatyvos Moment.js.

Galite įdiegti Day.js kaip paketą savo „JavaScript“ projekte vykdydami šią npm komandą:

npm diegti dayjs

Norėdami importuoti Day.js į savo projektą po įdiegimo, galite naudoti šį kodą:

konst dayjs = reikalauti("dayjs")

Štai keletas pagrindinių Day.js funkcijų ir metodų

konst dabar = dayjs();

konst data = dayjs('2023-03-23', „YYYY-MM-DD“);

konst mėnuo = data.month();

konst formattedDate = data.format(„MMMM D, YYYY“);

konst nextWeek = date.add(1, 'savaitė');

Aukščiau pateiktas kodas sukuria naują Day.js objektą, vaizduojantį dabartinę datą ir laiką, išanalizuoja datos eilutę tinkintu formatu ir gauna mėnesį nuo data kintamasis. Taip pat parodyta, kaip formatuoti ir pridėti prie datos egzemplioriaus.

Kaip ir Date-fns, Day.js pats negali teikti laiko juostos palaikymo. Day.js naudoja įskiepių sistemą, todėl jos naudojimas yra painus.

Iš įtrauktų paketų Day.js yra labiausiai panašus į Moment.js. Taip, jei reikia, bus lengviau perjungti vieną iš jų.

Programai tinkamos bibliotekos pasirinkimas

Tinkamos „JavaScript“ programos datos ir laiko bibliotekos pasirinkimas yra svarbus sprendimas, galintis turėti didelės įtakos kodo kokybei ir priežiūrai.

Kiekviena čia aptariama biblioteka turi savo stipriąsias ir silpnąsias puses, todėl prieš priimant sprendimą svarbu atidžiai įvertinti savo poreikius.