Gå utover JavaScripts innebygde dato- og klokkeslettfunksjoner med et av disse erstatningsbibliotekene.

JavaScripts innebygde støtte for datohåndtering er nyttig, men det kan være vanskelig å bruke. Komplekse operasjoner som tidssonekonverteringer og datoformatering er ofte utfordrende.

Heldigvis finnes det flere pakker som gjør arbeidet med datoer og klokkeslett i JavaScript mindre stressende. Her vil du lære om noen av disse pakkene og hvordan du kan komme i gang med å jobbe med disse pakkene.

Når det gjelder å jobbe med datoer og klokkeslett, det opprinnelige JavaScript Date-objektet har begrenset funksjonalitet.

Moment.js, et JavaScript-bibliotek, introduserte mange funksjoner som ikke er tilgjengelige i det opprinnelige Date-objektet. Som et resultat har det blitt det foretrukne biblioteket for å jobbe med datoer og klokkeslett.

For å installere Moment.js med npm, kjør følgende kommando fra prosjektkatalogen din:

npm installere øyeblikk

Etter installasjonen kan du importere Moment.js til prosjektet ditt og utføre operasjoner med biblioteket:

instagram viewer
konst øyeblikk = krever('øyeblikk');
konst nå = øyeblikk();
konst nowString = nå.format('ÅÅÅÅ-MM-DD TT: mm: ss');

konsoll.Logg(`Gjeldende dato og klokkeslett er ${nowString}`);

Denne kodebiten importerer Moment.js-biblioteket og oppretter et øyeblikksobjekt ved å bruke gjeldende dato og klokkeslett med øyeblikk() funksjon. Den viser deretter hvordan du formaterer det opprettede datoobjektet som en streng med format() metode, som tar et dato/tidsformat som argument.

Du kan også bruke dette biblioteket til å legge til og trekke fra tidsintervaller:

konst addTenMinutes = moment().add(10, 'minutter');
konsoll.Logg(`${addTenMinutes.format('h: mm a')}`);

konst subtractToDays = moment().subtract(2, 'dager');
konsoll.Logg(`${subtractTwoDays.format('dddd, MMMM Gjør ÅÅÅÅ')}`);

Programmet logger to variabler til konsollen, i forskjellige formater. Den første, addTenMinutes, holder resultatet av å legge til 10 minutter til gjeldende dato og klokkeslett. Den andre, trekke fra ToDager, har gjeldende dato- og klokkeslettverdi med to dager trukket fra.

Moment.js kan utføre andre operasjoner som å sjekke for skuddår og konvertere fra ett datoformat til et annet.

Det er viktig å merke seg at Moment.js ikke lenger vedlikeholdes av kjerneutviklerteamet. Utviklerne anbefaler å bruke et alternativ som Luxon.js.

Luxon.js er et robust og mer moderne JavaScript-bibliotek for arbeid med datoer. Et alternativ til Moment.js, det adresserer begrensninger i det eldre biblioteket som mutabilitet.

Du kan installere Luxon med npm og deretter importere den Dato tid klasse i Node.js-prosjektet ditt ved å bruke krever() funksjon:

konst { DateTime } = krever("luxon");

I Luxon refererer DateTime-objekter til tidsforekomster som går helt ned til millisekunder.

Du kan lage nye Dato tid objekter og få tilgang til komponentene deres, som år, måned, minutt og sekund:

konst nå = DatoTid.nå();
konst år = nå.år;
konst minutt = nå.minutt;
konst sekund = nå.sekund;

Denne koden oppretter en ny Dato tid objekt som representerer gjeldende dato og klokkeslett ved å bruke nå() metode. Den får deretter tilgang til datoens komponenter ved å bruke år, minutt, og sekund egenskaper.

En stor forskjell mellom Luxon.js og Moment.js er dens uforanderlige karakter. Alle DateTime-objekter er uforanderlige i Luxon, noe som betyr at du ikke kan endre DateTime-egenskaper. I stedet kan du opprette nye DateTime-forekomster fra eksisterende.

For eksempel:

konst nå = DatoTid.nå();
konst i morgen = nå.pluss({ dager: 1 });

Denne koden oppretter en ny Dato tid objekt navngitt i morgen basert på objekt ved å bruke Plus metode, gir den en verdi på 1 dag som et argument. Plussmetoden oppretter et nytt DateTime-objekt med det angitte antallet dager lagt til det opprinnelige objektet.

En annen fordel med Luxon.js er dens pålitelige tidssonestøtte, som er avgjørende for å jobbe med datoer og klokkeslett i moderne nettapplikasjoner. Biblioteket bruker Internationalization API i moderne nettlesere for å gi nøyaktig tidssonestøtte.

En av ulempene med Luxon.js er imidlertid dens begrensede fellesskapsressurser.

Date-fns er et veldig lett JavaScript-bibliotek designet for å jobbe med datoer og klokkeslett. Den bygger på det opprinnelige JavaScript-objektet.

Dato-fns bruker funksjonelle programmeringsteknikker og inneholder en uforanderlig funksjon, som gjør arbeidet med datoer enklere og reduserer sannsynligheten for feil i koden din.

Etter at du har installert date-fns med npm, importerer du pakken til programmet ditt ved å bruke kreve-funksjonen:

konst { format, addDays } = krever("dato-fns");

Dato-fns er modulært. Den inneholder mange funksjoner som du kan få tilgang til ved å destrukturere pakken, som vist i kodeblokken ovenfor. Koden importerer bare formatet og addDays-funksjonene fra date-fns-biblioteket.

Her er et eksempel på hvordan du bruker begge disse funksjonene:

konst i dag = nyDato();
konst formattedDate = format (i dag, "åååå-MM-dd");
konsoll.log (formatert dato);

konst i morgen = format (legg tilDager (i dag, 1), "åååå-MM-dd");
konsoll.log (i morgen);

Dette programmet demonstrerer bruk av date-fns-biblioteket i JavaScript for å formatere og manipulere datoer.

Det skaper en ny Dato objekt som representerer gjeldende dato. Den formaterer gjeldende dato ved å bruke format funksjon fra date-fns-biblioteket.

Den bruker da legge tilDager funksjon for å lage et nytt Dato-objekt som representerer morgendagens dato, formaterer det ved hjelp av format funksjon, og logger både gjeldende dato og morgendagens dato til konsollen i "åååå-MM-dd" format.

En ulempe med å bruke Date-fns er at den ikke gir tidssonestøtte. I stedet bruker den et eget bibliotek for å arbeide med tidssoner ved hjelp av hjelpefunksjoner.

Day.js, et annet veldig lett bibliotek, er et godt valg hvis du leter etter et uforanderlig, mindre, raskere alternativ til Moment.js.

Du kan installere Day.js som en pakke i JavaScript-prosjektet ditt ved å kjøre følgende npm-kommando:

npm installere dayjs

For å importere Day.js til prosjektet ditt etter installasjonen, kan du bruke følgende kode:

konst dayjs = krever('dayjs')

Her er noen grunnleggende funksjoner og metoder tilgjengelig i Day.js

konst nå = dayjs();

konst dato = dayjs('2023-03-23', "ÅÅÅÅ-MM-DD");

konst måned = dato.måned();

konst formattedDate = dato.format("MMMM D, ÅÅÅÅ");

konst neste uke = date.add(1, 'uke');

Koden ovenfor oppretter et nytt Day.js-objekt som representerer gjeldende dato og klokkeslett, analyserer en datostreng med et tilpasset format, og henter måneden fra Dato variabel. Den viser også hvordan du formaterer og legger til en datoforekomst.

I likhet med Date-fns kan ikke Day.js gi tidssonestøtte alene. Day.js bruker et plugin-system, noe som gjør det forvirrende å bruke.

Av pakkene som dekkes, er Day.js mest lik Moment.js. Dette gjør det lettere å bytte mellom de to hvis du trenger det.

Velge riktig bibliotek for appen din

Å velge riktig dato- og klokkeslettbibliotek for JavaScript-applikasjonen din er en viktig beslutning som kan ha stor innvirkning på kvaliteten og vedlikeholdbarheten til koden din.

Hvert av bibliotekene som diskuteres her har sine styrker og svakheter, så det er viktig å nøye vurdere kravene dine før du tar en beslutning.