Luxon gebruiken voor datum en tijd in JavaScript

Werken met datum en tijd kan een verwarrende taak zijn voor ontwikkelaars die beginnen met JavaScript. In deze zelfstudie leert u meer over een nieuwe JavaScript-bibliotheek met de naam Luxon, waardoor het een koud kunstje is om met datum en tijd te werken in JavaScript.

In de loop van deze zelfstudie leert u meer over de verschillende functies van de Luxon-bibliotheek en hoe u deze kunt gebruiken in uw webapplicatieprojecten..

Ermee beginnen

U maakt een Angular-project en ziet hoe u de Luxon-bibliotheek gebruikt voor datum- en tijdmanipulatie in Angular. Laten we beginnen door een Angular web-app te maken.

ng nieuwe AngularLuxon

Nadat u het project hebt gemaakt, navigeert u naar de projectdirectory en maakt u een nieuw onderdeel genaamd luxdate.

ng g component luxdate

Je hebt de LuxdateComponent gemaakt en toegevoegd aan de applicatiemodule in de app.module.ts het dossier. Verwijder de standaard AppComponent van de toepassing door de componentbestanden te verwijderen uit de src / app map. Hier is hoe het app.module.ts bestand ziet er:

import BrowserModule vanuit '@ angular / platform-browser'; import NgModule uit '@ angular / core'; importeer LuxdateComponent van './luxdate/luxdate.component'; @ NgModule (aangiften: [LuxdateComponent], importeert: [BrowserModule], providers: [], bootstrap: [LuxdateComponent]) exportklasse AppModule  

Wijzig de src / index.html bestand om de. toe te voegen LuxdateComponent.

  

Sla de bovenstaande wijzigingen op en start de server.

npm start

U zult de applicatie draaien op http: // localhost: 4200 /.

Laten we de Luxon-bibliotheek importeren in uw applicatie.

npm install - bewaar luxon

Nadat u Luxon in de Angular-toepassing hebt geïnstalleerd, importeert u deze in de LuxdateComponent component. Nu bent u klaar om de Luxon-bibliotheek in uw project te gebruiken.

Lokale tijd en UTC-tijd met Luxon

Laten we eens kijken hoe we de lokale tijd kunnen gebruiken met de Luxon bibliotheek. Importeren Datum Tijd van de Luxon-bibliotheek.

importeer DateTime van 'luxon';

Binnen in de LuxdateComponent, definieer een variabele genaamd localDatetime.

public localDatetime;

Stel de waarde in van de localDatetime variabele zoals getoond:

this.localDatetime = DateTime.local ();

Render de localDatetime variabele in de luxdate.component.html het dossier.

LocalDatetime

Sla de wijzigingen op en de lokale tijd wordt weergegeven op de webpagina.

2017-12-31T15: 55: 12,761 + 05: 30 

De hierboven weergegeven datum en tijd is de lokale tijd met de tijdzone als bijlage. U kunt de datum en tijd verder indelen om het intuïtiever te maken.

Formatteer de datum en tijd om weer te geven met behulp van de onderstaande coderegel.

this.localDatetime = DateTime.local (). toLocaleString (DateTime.DATETIME_FULL);

Sla de bovenstaande regel code op en de volgende datum en tijd worden weergegeven.

31 december 2017, 10:35 PM GMT + 5: 30 

Evenzo is de .UTC methode in de Datum Tijd object geeft de UTC-tijd. 

Voeg een nieuwe variabele toe in de LuxdateComponent om de UTC-tijd in te stellen.

openbare utcDatetime;

Stel de waarde in van de utcDatetime variabele met behulp van de Luxon Datum Tijd voorwerp. 

this.utcDatetime = DateTime.utc (). toLocaleString (DateTime.DATETIME_FULL);

Render de utcDatetime variabele in de luxdate.component.html bestand zoals getoond:

Luxon-bibliotheek

Lokale tijd : LocalDatetime
UTC-tijd: UtcDatetime

Voeg de volgende CSS-stijl toe aan de luxdate.component.css het dossier. 

.container text-align: center; breedte: 100%;  .time display: inline-block;  .local border: 1px solid # 8c8282; text-align: left; achtergrondkleur: burlywood; opvulling: 10px;  .utc margin-top: 30px; rand: 1px vast # 8c8282; text-align: left; achtergrondkleur: burlywood; opvulling: 10px;  .label font-family: serif; lettertypegrootte: 22px; lettertype-stijl: initiaal; 

Sla de bovenstaande wijzigingen op en u kunt de lokale tijd en de UTC-tijd bekijken met behulp van de Luxon-bibliotheek.

Om de lokale tijd en UTC-tijd met de seconden opgenomen weer te geven, kunt u gebruiken DATETIME_FULL_WITH_SECONDS. Hier is hoe het eruit zal zien:

ngOnInit () this.localDatetime = DateTime.local (). toLocaleString (DateTime.DATETIME_FULL_WITH_SECONDS); this.utcDatetime = DateTime.utc (). toLocaleString (DateTime.DATETIME_FULL_WITH_SECONDS); 

Sla de wijzigingen op en u krijgt de lokale tijd en UTC-tijd weergegeven met seconden.

Algemene datum- en tijdinformatie met Luxon

De Luxon-bibliotheek biedt een info klasse die helpt bij het verkrijgen van algemene informatie over datum en tijd.

Als het gaat om datum en tijd, is het vrij normaal dat u de lijst met maanden in een jaar nodig heeft. De ... gebruiken info klasse, je kunt de lijst met maanden als een array krijgen. 

Importeer de info klasse in de luxdate.component.ts het dossier.

importeer DateTime, Info uit 'luxon';

Declareer een variabele voor de lijst met maanden en initialiseer deze.

openbare maanden; constructor () this.months = []; 

Stel de maandlijst in vanuit de info klasse.

this.months = Info.months ();

Voeg de volgende HTML toe aan de luxdate.component.html bestand om de maanden variabele inhoud.

Maand:

Sla de bovenstaande wijzigingen op en u heeft de maandlijst ingevuld.

Evenzo, met behulp van de doordeweekse dagen methode geeft u een lijst met de weekdagen.

this.weeks = Info.weekdays ();

Sla de wijzigingen op en de weekdagen staan ​​op het scherm.

Luxon biedt ook een optie om de lijst van te krijgen meridiems de ... gebruiken meridiems methode.

this.meridians = Info.meridiems ();

Pas de HTML-code in de luxdate.component.html om de weken en meridianen.

Sla de wijzigingen op en u kunt de weergegeven weken en meridianen bekijken.

Internationaal omgaan met Luxon 

Luxon biedt een omgeving klasse, waarmee je het algemene gedrag van Luxon aankunt. Laten we de standaard locale instelling van Luxon instellen op el.

Importeer de instellingen klasse in de luxdate.component.ts het dossier.

importeer DateTime, Instellingen, Info vanuit 'luxon';

In de constructormethode van LuxdateComponent, stel de standaard locale in zoals getoond:

constructor () Settings.defaultLocale = 'el'; 

Sla de wijzigingen op en je hebt de standaard locale ingesteld op el.

Zone-informatie met behulp van Luxon

De Luxon-bibliotheek biedt een interface om de details te krijgen die betrekking hebben op de zone van een bepaald gebied Datum Tijd voorwerp. Om het te gebruiken, moet je importeren Zone van de Luxon-bibliotheek.

importeer DateTime, Instellingen, Info, Zone vanuit 'luxon';

Laten we proberen Zone op een Luxon te gebruiken Datum Tijd voorwerp. Maak een lokaal Datum Tijd Luxon-object.

laat dateObj = DateTime.local (); 

U kunt de Zone interface op de dateObj om de zonenaam te krijgen. Voeg de volgende code toe om de zonenaam te loggen.

console.log ('Zonenaam is', dateObj.zone.name);

Sla de wijzigingen op en bij het uitvoeren van de app kunt u de zonelaam bekijken die is vastgelegd in de browserconsole.

Zonenaam is Azië / Kolkata

Laten we proberen de zonenaam van een UTC DateTime-object af te drukken.

laat utcObj = DateTime.utc (); console.log ('Zonenaam is', utcObj.zone.name);

De bovenstaande code zal de zonenaam als afdrukken UTC.

Zonenaam is UTC

De Luxon Zone interface biedt een methode om twee te vergelijken tijdzones. Laten we proberen het te vergelijken tijdzone van de Datum Tijd voorwerpen localObj en utcObj.

if (localObj.zone.equals (utcObj.zone)) console.log ('Beide zones zijn gelijk');  else console.log ('Beide zones zijn verschillend'); 

Zoals te zien in de bovenstaande code, hebt u de zone.equals methode om de zones te vergelijken. Sla de wijzigingen op en probeer de app uit te voeren, en u zult het resultaat laten loggen.

Beide zones zijn verschillend

Interval in Luxon

Interval in Luxon is een wikkel voor twee Datum Tijd eindpunten die kunnen worden gemanipuleerd met behulp van de Luxon-methoden. Van de officiële documentatie:

Een Interval-object vertegenwoordigt een half-open interval van tijd, waarbij elk eindpunt een DateTime is. Conceptueel gezien is het een container voor die twee eindpunten, vergezeld van methoden voor het maken, ontleden, ondervragen, vergelijken, transformeren en formatteren ervan.

Er zijn een aantal verschillende manieren om een ​​interval te maken met behulp van Luxon. Laten we eens kijken naar hoe een interval te maken met behulp van een begin en einde Datum Tijd voorwerp.

Importeren Interval van Luxon in LuxdateComponent

import Interval uit 'luxon';

Maak een begin Datum Tijd object en een einde Datum Tijd voorwerp.

laat startDate = DateTime.local (); laat endDate = DateTime.local (). plus (minuten: 15);

Zoals te zien in de bovenstaande code, hebt u de begin datum gebruik van de huidige lokale tijd en einddatum door de lokale tijd met 15 minuten te verhogen.

Maak een interval met behulp van de fromDateTimes methode.  

laat intv = Interval.fromDateTimes (startdatum, einddatum); console.log ('Interval is', intv);

Sla de bovenstaande wijzigingen op en bij het uitvoeren van de toepassing wordt het interval vastgelegd.

Nu kunt u de Luxon-methode toepassen om de begin- en eindtijd in het intervalobject te bewerken of te formatteren. Stel dat u de zonenaam van de begintijd in het interval wilt controleren. U kunt dit doen met behulp van de zone.name eigendom zoals getoond:

console.log ('Start datum zone is', intv.s.zone.name);

U heeft de volgende uitvoer vastgelegd in de browserconsole:

Startdatumzone is Azië / Kolkata

Duur creëren met Luxon

Luxon biedt een aantal methoden om de duur te maken. Als u wilt beginnen met het maken van de duur, moet u importeren Looptijd in uw LuxdateComponent.

importeer Duur van 'luxon';

Nadat het is geïmporteerd, kunt u de fromMillis methode om een ​​duur te maken door de milliseconden op te geven.

laat fiveMinute = Duration.fromMillis (5 * 60 * 1000); console.log ('Five minutes is', fiveMinute);

Sla de wijzigingen op en bij het uitvoeren van de toepassing heeft u het bovenstaande vijf minuten duur ingelogd.

Je kunt ook een andere gebruiken Datum Tijd object om een ​​duur te maken met behulp van de fromObject methode. Hier ziet u hoe de code eruitziet:

laat startDate = DateTime.local (); laat dur = Duration.fromObject (startDatum); console.log ('Duur van object is', dur);

Sla de wijzigingen op en je hebt de duur aangemeld in de browserconsole.

Inpakken

In deze zelfstudie zag u hoe u aan de slag kon gaan met het gebruik van de Luxon-bibliotheek voor het werken met datum en tijd in een hoekig webproject. Je hebt geleerd hoe je om moet gaan met lokale tijd en UTC-tijd en hoe je een interval en duur kunt creëren met Luxon.

Voor uitgebreide informatie over het gebruik van de Luxon-bibliotheek raad ik u aan de officiële documentatie te lezen.

Hoe was je ervaring om met Luxon te leren werken? Laat het ons weten in de reacties hieronder.