Lépjen túl a JavaScript beépített dátum- és időképességein ezen helyettesítő könyvtárak egyikével.

A JavaScript beépített támogatása a dátumkezeléshez hasznos, de használata kényelmetlen lehet. Az olyan összetett műveletek, mint az időzóna-konverzió és a dátumformázás, gyakran kihívást jelentenek.

Szerencsére több olyan csomag is elérhető, amelyek kevésbé megterhelővé teszik a JavaScriptben a dátumokkal és időpontokkal való munkát. Itt megtudhatja néhány ilyen csomagról, és arról, hogyan kezdhet el dolgozni ezeken a csomagokon.

Ha a dátumokkal és időpontokkal kell dolgozni, a natív JavaScript dátum objektum korlátozott funkcionalitással rendelkezik.

A Moment.js, a JavaScript-könyvtár számos olyan funkciót vezetett be, amelyek nem érhetők el a natív Date objektumban. Ennek eredményeként ez a könyvtár a dátumokkal és időpontokkal való munkavégzéshez használható.

A Moment.js npm-mel történő telepítéséhez futtassa a következő parancsot a projektkönyvtárból:

npm telepítés pillanat

A telepítés után importálhatja a Moment.js fájlt a projektbe, és műveleteket hajthat végre a könyvtárral:

instagram viewer
const pillanat = igényelnek('pillanat');
const most = pillanat();
const nowString = now.format("ÉÉÉÉ-HH-NN ÓÓ: mm: ss");

konzol.log(`Az aktuális dátum és idő ${nowString}`);

Ez a kódrészlet importálja a Moment.js könyvtárat, és pillanatobjektumot hoz létre az aktuális dátum és idő használatával pillanat() funkció. Ezután bemutatja, hogyan kell a létrehozott dátumobjektumot karakterláncként formázni a formátum() metódust, amely egy dátum/idő formátumot vesz argumentumként.

Ezt a könyvtárat időintervallumok hozzáadására és kivonására is használhatja:

const addTenMinutes = pillanat().add(10, 'percek');
konzol.log(`${addTenMinutes.format("ó: mm a")}`);

const subtractTwoDays = pillanat().kivon(2, 'napok');
konzol.log(`${subtractTwoDays.format('ddd, HHH, ÉÉÉÉ)}`);

A program két változót naplóz a konzolra, különböző formátumokban. Az első, addTenMinutes, az aktuális dátumhoz és időhöz 10 perc hozzáadásának eredményét tárolja. A második, kivonni Két Napot, az aktuális dátum és idő értéke van, ebből levonva a két napot.

A Moment.js más műveleteket is végrehajthat, mint például a szökőévek ellenőrzése és az egyik dátumformátumról a másikra való konvertálás.

Fontos megjegyezni, hogy a Moment.js-t már nem a fő fejlesztői csapat karbantartja. A fejlesztők egy olyan alternatívát javasolnak, mint a Luxon.js.

A Luxon.js egy robusztus és modernebb JavaScript-könyvtár a dátumokkal való munkavégzéshez. A Moment.js alternatívájaként kezeli a régebbi könyvtár korlátait, például a változékonyságot.

Telepítheti a Luxont az npm-mel, majd importálhatja Dátum idő osztály a Node.js projektben a igényel() funkció:

const { DateTime } = igényelnek("luxon");

A Luxonban a DateTime objektumok olyan időpéldányokra vonatkoznak, amelyek egészen ezredmásodpercig terjednek.

Létrehozhat újat Dátum idő objektumok és összetevőik elérése, például az év, hónap, perc és másodperc:

const most = DateTime.now();
const év = most.év;
const perc = most.perc;
const második = most.másodperc;

Ez a kód újat hoz létre Dátum idő objektum, amely az aktuális dátumot és időt reprezentálja a Most() módszer. Ezután a következővel éri el az adott dátum összetevőit év, perc, és második tulajdonságait.

A Luxon.js és a Moment.js közötti fő különbség a változatlan karaktere. Minden DateTime objektum megváltoztathatatlan a Luxonban, ami azt jelenti, hogy nem módosíthatja a DateTime tulajdonságait. Ehelyett létrehozhat új DateTime példányokat a meglévőkből.

Például:

const most = DateTime.now();
const holnap = most.plus({ napok: 1 });

Ez a kód újat hoz létre Dátum idő nevű objektum holnap alapján Most objektum segítségével a plusz módszert, 1 nap értéket adva át neki argumentumként. A plusz metódus létrehoz egy új DateTime objektumot a megadott számú nap hozzáadásával az eredeti objektumhoz.

A Luxon.js másik előnye a megbízható időzóna-támogatás, amely elengedhetetlen a dátumokkal és időpontokkal való munkavégzéshez a modern webes alkalmazásokban. A könyvtár használja az Internationalization API modern böngészőkben, hogy pontos időzóna támogatást nyújtson.

A Luxon.js egyik hátránya azonban a korlátozott közösségi erőforrások.

A Date-fns egy nagyon könnyű JavaScript-könyvtár, amelyet a dátumok és időpontok kezelésére terveztek. A natív JavaScript objektumra épül.

Date-fns használ funkcionális programozási technikák és tartalmaz egy megváltoztathatatlan funkciót, amely egyszerűbbé teszi a dátumokkal való munkát, és csökkenti a hibák valószínűségét a kódban.

A date-fns npm paranccsal történő telepítése után importálja a csomagot a programjába a request függvény segítségével:

const { formátum, addDays } = igényelnek('date-fns');

A dátum-fns moduláris. Rengeteg olyan funkciót tartalmaz, amelyeket a csomag strukturálásának megsemmisítésével érhet el, ahogy az a fenti kódblokkban látható. A kód csak a formátumot és az addDays függvényeket importálja a date-fns könyvtárból.

Íme egy példa mindkét funkció használatára:

const ma = újDátum();
const formattedDate = formátum (ma, "éééé-hh-nn");
konzol.log (formattedDate);

const holnap = formátum (addDays (ma, 1), "éééé-hh-nn");
konzol.log (holnap);

Ez a program bemutatja a dátum-fns könyvtár használatát JavaScriptben a dátumok formázásához és kezeléséhez.

Újat hoz létre Dátum az aktuális dátumot képviselő objektum. Az aktuális dátumot a következővel formázza formátum függvényt a date-fns könyvtárból.

Ezután a addDays függvény segítségével hozzon létre egy új Date objektumot, amely a holnap dátumát reprezentálja, és formázza azt a formátum függvényt, és mind az aktuális, mind a holnapi dátumot naplózza a konzolon a "éééé-hh-nn" formátumban.

A Date-fns használatának hátránya, hogy nem nyújt időzóna támogatást. Ehelyett egy külön könyvtárat használ az időzónák kezeléséhez a segédfunkciók segítségével.

A Day.js, egy másik nagyon könnyű könyvtár, jó választás, ha megváltoztathatatlan, kisebb, gyorsabb alternatívát keres a Moment.js helyett.

A Day.js-t csomagként telepítheti JavaScript-projektjébe a következő npm parancs futtatásával:

npm telepítés dayjs

A telepítés után a Day.js projektbe való importálásához a következő kódot használhatja:

const dayjs = igényelnek("dayjs")

Íme néhány alapvető funkció és módszer a Day.js-ben

const most = dayjs();

const dátum = dayjs('2023-03-23', "ÉÉÉÉ-HH-NN");

const hónap = dátum.hónap();

const formattedDate = date.format(„HHH D, ÉÉÉÉ”);

const nextWeek = date.add(1, 'hét');

A fenti kód létrehoz egy új Day.js objektumot, amely az aktuális dátumot és időt reprezentálja, elemzi a dátum karakterláncot egyéni formátumban, és lekéri a hónapot a dátum változó. Azt is bemutatja, hogyan kell formázni és hozzáadni egy dátumpéldányt.

A Date-fns-hez hasonlóan a Day.js sem képes önmagában időzóna támogatást nyújtani. A Day.js beépülő modulrendszert használ, ami zavaróvá teszi a használatát.

A lefedett csomagok közül a Day.js hasonlít leginkább a Moment.js-hez. Ez megkönnyíti a váltást a kettő között, ha szükséges.

A megfelelő könyvtár kiválasztása az alkalmazáshoz

A megfelelő dátum- és időkönyvtár kiválasztása a JavaScript-alkalmazáshoz fontos döntés, amely nagy hatással lehet a kód minőségére és karbantarthatóságára.

Az itt tárgyalt könyvtárak mindegyikének megvannak a maga erősségei és gyengeségei, ezért fontos, hogy alaposan mérlegelje igényeit, mielőtt döntést hozna.