Arbeide med dato og klokkeslett kan være en forvirrende oppgave for utviklere som begynner med JavaScript. I denne opplæringen lærer du om et nytt JavaScript-bibliotek kalt Luxon, som gjør det til en bris å jobbe med dato og klokkeslett i JavaScript.
I løpet av denne opplæringen lærer du om de forskjellige funksjonene i Luxon-biblioteket og hvordan du bruker det i webapplikasjonsprosjektene dine.
Du lager et vinkelprosjekt og vil se hvordan du bruker Luxon-biblioteket til dato- og tidsmanipulering i Angular. La oss begynne med å lage en kantet web-app.
ng ny AngularLuxon
Når du har opprettet prosjektet, naviger til prosjektkatalogen og opprett en ny komponent som heter luxdate
.
ng g komponent luxdate
Du vil ha LuxdateComponent
opprettet og lagt til programmodulen i app.module.ts
fil. Fjern standardinnstillingen AppComponent
fra applikasjonen ved å slette komponentfiler fra src / app
mappe. Her er hvordan app.module.ts
fil ser ut:
importer BrowserModule fra '@ vinkel / plattform-nettleser'; importer NgModule fra '@ vinkel / kjerne'; importer LuxdateComponent fra '. /luxdate/luxdate.component'; @NgModule (declarations: [LuxdateComponent], import: [BrowserModule], leverandører: [], bootstrap: [LuxdateComponent]) eksportklasse AppModule
Endre src / index.html
fil for å legge til LuxdateComponent
.
Lagre endringene ovenfor og start serveren.
npm start
Du vil få programmet til å kjøre på http: // localhost: 4200 /.
La oss importere Luxon-biblioteket til din søknad.
npm installere - lagre luxon
Når du har installert Luxon i Angular-applikasjonen, importerer du den i LuxdateComponent
komponent. Nå er du klar til å bruke Luxon-biblioteket i prosjektet ditt.
La oss ta en titt på hvordan du får den lokale tiden ved hjelp av Luxon
bibliotek. Importere Dato tid
fra Luxon-biblioteket.
importer DateTime fra 'luxon';
Inne i LuxdateComponent
, definer en variabel som heter localDatetime
.
offentlig lokal tid;
Angi verdien til localDatetime
variabel som vist:
this.localDatetime = DateTime.local ();
Render localDatetime
variabel i luxdate.component.html
fil.
LocalDatetime
Lagre endringene, og du vil få lokal tid som vises på nettsiden.
2017-12-31T15: 55: 12,761 + 05: 30
Dato og klokkeslett vist ovenfor er lokal tid med tidszonen festet. Du kan formatere dato og klokkeslett videre for å gjøre det mer intuitivt.
Formater dato og klokkeslett for å vise ved hjelp av koden nedenfor.
this.localDatetime = DateTime.local (). toLocaleString (DateTime.DATETIME_FULL);
Lagre koden ovenfor, og du vil få følgende dato og klokkeslett vist.
31. desember 2017, 10:35 PM GMT + 5:30
På samme måte, .utc
metode i Dato tid
objektet gir UTC-tiden.
Legg til en ny variabel i LuxdateComponent
for å stille inn UTC-tiden.
offentlig utcDatenime;
Angi verdien til utcDatetime
variabel ved bruk av Luxon Dato tid
gjenstand.
this.utcDatetime = DateTime.utc (). toLocaleString (DateTime.DATETIME_FULL);
Render utcDatetime
variabel i luxdate.component.html
fil som vist:
Luxon-biblioteket
Lokal tid : LocalDatetimeUTC-tid: UtcDatetime
Legg til følgende CSS-stil i luxdate.component.css
fil.
.container text-align: center; bredde: 100%; .time display: inline-block; .local border: 1px solid # 8c8282; tekstjustering: venstre; bakgrunnsfarge: burlywood; polstring: 10px; .utc margin-top: 30px; grense: 1px solid # 8c8282; tekstjustering: venstre; bakgrunnsfarge: burlywood; polstring: 10px; .label font-family: serif; skriftstørrelse: 22px; font-style: initial;
Lagre endringene ovenfor, og du vil kunne se lokal tid og UTC-tiden ved hjelp av Luxon-biblioteket.
For å vise lokal tid og UTC-tid med sekunder inkludert, kan du bruke DATETIME_FULL_WITH_SECONDS
. Slik ser det ut:
ngOnInit () this.localDatetime = DateTime.local (). toLocaleString (DateTime.DATETIME_FULL_WITH_SECONDS); this.utcDatetime = DateTime.utc (). toLocaleString (DateTime.DATETIME_FULL_WITH_SECONDS);
Lagre endringene, og du vil få lokal tid og UTC-tid som vises med sekunder.
Luxon biblioteket tilbyr en info
klasse som hjelper med å få litt generell informasjon om dato og klokkeslett.
Når det gjelder dato og klokkeslett, er det ganske vanlig at du kanskje trenger listen over måneder på et år. Bruker info
klasse, kan du få listen over måneder som en matrise.
Importer info
klasse i luxdate.component.ts
fil.
importer DateTime, Info fra 'luxon';
Erklære en variabel for listen over måneder og initialiser den.
offentlige måneder; konstruktør () this.months = [];
Sett månedslisten fra info
klasse.
this.months = Info.months ();
Legg til følgende HTML for luxdate.component.html
fil for å vise måneder
variabelt innhold.
Måned:
Lagre endringene ovenfor, og du vil få månedslisten befolket.
På samme måte bruker du hverdager
Metoden gir deg en liste over hverdager.
this.weeks = Info.weekdays ();
Lagre endringene, og du vil ha ukedager oppført på skjermen.
Luxon gir også et alternativ for å få listen over meridiems
bruker meridiems
metode.
this.meridians = Info.meridiems ();
Endre HTML-koden i luxdate.component.html
å vise uker
og meridianer
.
Lagre endringene, og du vil kunne se ukene og meridianene som vises.
Luxon gir en Innstilling
klasse, som du kan bruke til å håndtere Luxons samlede oppførsel. La oss angi standard lokalinnstilling for Luxon til el
.
Importer innstillinger
klasse i luxdate.component.ts
fil.
importer DateTime, Settings, Info fra 'luxon';
I konstruktørmetoden til LuxdateComponent
, angi standard locale som vist:
konstruktør () Settings.defaultLocale = 'el';
Lagre endringene, og du vil ha standard lokalsett til el
.
Luxon-biblioteket gir et grensesnitt for å få detaljer relatert til sonen til en bestemt Dato tid
gjenstand. For å bruke det, må du importere sone
fra Luxon-biblioteket.
importer DateTime, Settings, Info, Zone fra 'luxon';
La oss prøve å bruke Zone på en Luxon Dato tid
gjenstand. Lag en lokal Dato tid
Luxon objekt.
la dateObj = DateTime.local ();
Du kan bruke sone
grensesnitt på dateObj
for å få sonenavnet. Legg til følgende kode for å logge sonenavnet.
console.log ('Sone navn er', datoObj.zone.name);
Lagre endringene, og når du kjører appen, kan du se sonenavnet som er logget inn i nettleserkonsollen.
Sone navn er Asia / Kolkata
La oss prøve å skrive ut sonenavnet til en UTC DateTime-objekt.
la utcObj = DateTime.utc (); console.log ('Sone navn er', utcOjj.zone.name);
Ovennevnte kode vil skrive ut sonenavnet som UTC
.
Sone navn er UTC
The Luxon sone
grensesnitt gir en metode for å sammenligne to tidssoner
. La oss prøve å sammenligne tidssone
av Dato tid
objekter localObj
og utcObj
.
hvis (localObj.zone.equals (utcObj.zone)) console.log ('Begge sonene er like'); else console.log ('Begge sonene er forskjellige');
Som vist i koden ovenfor har du brukt zone.equals
metode for å sammenligne sonene. Lagre endringene og prøv å kjøre appen, og du vil få resultatet logget.
Begge sonene er forskjellige
intervall
i Luxon er en wrapper for to Dato tid
Endpoints som kan manipuleres ved hjelp av Luxon-metodene. Fra den offisielle dokumentasjonen:
Et intervallobjekt representerer et halvt åpent tidsintervall hvor hvert sluttpunkt er en DateTime. Konseptuelt er det en beholder for de to endepunktene, ledsaget av metoder for å lage, analysere, forhøre, sammenligne, transformere og formatere dem.
Det er et par forskjellige måter å skape et intervall ved hjelp av Luxon. La oss se på hvordan du lager et intervall ved hjelp av en start og slutt Dato tid
gjenstand.
Importere intervall
fra Luxon i LuxdateComponent
.
importer Intervall fra 'luxon';
Lage en start
Dato tid
objekt og en slutt
Dato tid
gjenstand.
la startDate = DateTime.local (); la endDate = DateTime.local (). pluss (minutter: 15);
Som vist i koden ovenfor skapte du startdato
bruker gjeldende lokal tid og sluttdato
ved å øke lokal tid med 15 minutter.
Lag et intervall ved hjelp av fromDateTimes
metode.
la intv = Interval.fromDateTimes (startDate, endDate); console.log ('Intervall er', intv);
Lagre endringene ovenfor, og når du kjører programmet, vil du få intervallet logget.
Nå kan du bruke Luxon-metoden til å manipulere eller formatere start- og sluttidspunktet i intervallobjektet. La oss si at du vil sjekke sonenavnet til starttiden i intervallet. Du kan gjøre det ved å bruke zone.name
eiendom som vist:
console.log ('Startdatasone er', intv.s.zone.name);
Du vil få følgende utgang logget inn i nettleserkonsollen:
Startdatasone er Asia / Kolkata
Luxon gir et par metoder for å skape varighet. For å komme i gang med å skape varighet, må du importere Varighet
i din LuxdateComponent
.
importer Varighet fra 'luxon';
Når den er importert, kan du bruke fromMillis
metode for å lage en varighet ved å spesifisere millisekunder.
la femMinute = Varighet.fromMillis (5 * 60 * 1000); console.log ('Fem minutter er', femMinute);
Lagre endringene, og når du kjører programmet, har du det ovenfor fiveMinute
varighet logget.
Du kan også bruke en annen Dato tid
motsette seg å opprette en varighet ved hjelp av fromObject
metode. Slik ser koden ut:
la startDate = DateTime.local (); la dur = Duration.fromObject (startDate); console.log ('Varighet fra objekt er', dur);
Lagre endringene, og du vil ha varigheten logget inn i nettleserkonsollen.
I denne veiledningen så du hvordan du begynner med å bruke Luxon-biblioteket for å jobbe med dato og klokkeslett i et Angular web-prosjekt. Du lærte hvordan du skal håndtere lokal tid og UTC-tid, og hvordan du lager et intervall og varighet ved hjelp av Luxon.
For grundig informasjon om bruk av Luxon-biblioteket, vil jeg anbefale å lese den offisielle dokumentasjonen.
Hvordan var din erfaring lært å jobbe med Luxon? Gi oss beskjed om dine tanker i kommentarene nedenfor.