Lavorare con data e ora può essere un compito di confusione per gli sviluppatori che iniziano con JavaScript. In questo tutorial, scoprirai una nuova libreria JavaScript chiamata Luxon che rende semplicissimo lavorare con data e ora in JavaScript.
Nel corso di questo tutorial, imparerai a conoscere le diverse funzionalità della libreria Luxon e come utilizzarla nei tuoi progetti di applicazione web.
Creerai un progetto Angolare e vedrai come utilizzare la libreria Luxon per la manipolazione di data e ora in Angular. Iniziamo creando un'app web Angolare.
nuovo nuovo AngularLuxon
Una volta creato il progetto, accedere alla directory del progetto e creare un nuovo componente chiamato luxdate
.
ng g componente luxdate
Avrai il LuxdateComponent
creato e aggiunto al modulo dell'applicazione nel app.module.ts
file. Rimuovi il valore predefinito AppComponent
dall'applicazione eliminando i file del componente dal src / app
cartella. Ecco come app.module.ts
aspetto del file:
importare BrowserModule da '@ angular / platform-browser'; import NgModule da '@ angular / core'; import LuxdateComponent da './luxdate/luxdate.component'; @NgModule (dichiarazioni: [LuxdateComponent], importazioni: [BrowserModule], provider: [], bootstrap: [LuxdateComponent]) classe di esportazione AppModule
Modifica il src / index.html
file per aggiungere il LuxdateComponent
.
Salvare le modifiche precedenti e avviare il server.
inizio di npm
Avrai l'applicazione in esecuzione su http: // localhost: 4200 /.
Importa la libreria Luxon nella tua applicazione.
installazione npm --save luxon
Una volta installato Luxon nell'applicazione Angular, importarlo nel LuxdateComponent
componente. Ora sei pronto per usare la libreria Luxon nel tuo progetto.
Diamo un'occhiata a come ottenere l'ora locale usando il Luxon
biblioteca. Importare Appuntamento
dalla biblioteca di Luxon.
importa DateTime da 'luxon';
Dentro il LuxdateComponent
, definire una variabile chiamata LocalDateTime
.
public localDatetime;
Imposta il valore di LocalDateTime
variabile come mostrato:
this.localDatetime = DateTime.local ();
Rendi il LocalDateTime
variabile nel luxdate.component.html
file.
LocalDateTime
Salva le modifiche e avrai l'ora locale visualizzata sulla pagina web.
2017-12-31T15: 55: 12,761 + 05: 30
La data e l'ora visualizzate sopra sono le ore locali con il fuso orario allegato. È possibile formattare ulteriormente la data e l'ora per renderlo più intuitivo.
Formattare la data e l'ora da visualizzare utilizzando la riga di codice riportata di seguito.
this.localDatetime = DateTime.local (). toLocaleString (DateTime.DATETIME_FULL);
Salva la riga di codice sopra, e avrai la seguente data e ora visualizzate.
31 dicembre 2017, 22:35 GMT + 5: 30
Allo stesso modo, il .UTC
metodo nel Appuntamento
oggetto dà il tempo UTC.
Aggiungi una nuova variabile nel LuxdateComponent
per impostare l'ora UTC.
pubblico utcDatetime;
Imposta il valore di utcDatetime
variabile usando il Luxon Appuntamento
oggetto.
this.utcDatetime = DateTime.utc (). toLocaleString (DateTime.DATETIME_FULL);
Rendi il utcDatetime
variabile nel luxdate.component.html
file come mostrato:
Biblioteca di Luxon
Ora locale : LocalDateTimeOra UTC: UtcDatetime
Aggiungi il seguente stile CSS al file luxdate.component.css
file.
.container text-align: center; larghezza: 100%; .time display: inline-block; .local border: 1px solid # 8c8282; allineamento del testo: a sinistra; colore di sfondo: burlywood; imbottitura: 10px; .utc margin-top: 30px; border: 1px solid # 8c8282; allineamento del testo: a sinistra; colore di sfondo: burlywood; imbottitura: 10px; .label font-family: serif; font-size: 22px; stile font: iniziale;
Salvare le modifiche precedenti e sarà possibile visualizzare l'ora locale e l'ora UTC utilizzando la libreria Luxon.
Per visualizzare l'ora locale e l'ora UTC con i secondi inclusi, è possibile utilizzare DATETIME_FULL_WITH_SECONDS
. Ecco come apparirà:
ngOnInit () this.localDatetime = DateTime.local (). toLocaleString (DateTime.DATETIME_FULL_WITH_SECONDS); this.utcDatetime = DateTime.utc (). toLocaleString (DateTime.DATETIME_FULL_WITH_SECONDS);
Salva le modifiche e avrai l'ora locale e l'ora UTC visualizzate in secondi.
La libreria Luxon fornisce un Informazioni
classe che aiuta a ottenere alcune informazioni generali su data e ora.
Quando si tratta di data e ora, è abbastanza comune che potrebbe essere necessario l'elenco dei mesi in un anno. Usando il Informazioni
classe, è possibile ottenere l'elenco dei mesi come una matrice.
Importa il Informazioni
classe nel luxdate.component.ts
file.
import DateTime, Info da 'luxon';
Dichiarare una variabile per l'elenco di mesi e inizializzarla.
mesi pubblici; costruttore () this.months = [];
Imposta l'elenco dei mesi da Informazioni
classe.
this.months = Info.months ();
Aggiungi il seguente codice HTML al file luxdate.component.html
file per visualizzare il mesi
contenuto variabile.
Mese :
Salvare le modifiche precedenti e verrà compilato l'elenco dei mesi.
Allo stesso modo, usando il giorni feriali
metodo ti dà una lista dei giorni della settimana.
this.weeks = Info.weekdays ();
Salva le modifiche e avrai i giorni della settimana elencati sullo schermo.
Luxon offre anche un'opzione per ottenere l'elenco di meridiems
usando il meridiems
metodo.
this.meridians = Info.meridiems ();
Modifica il codice HTML nel luxdate.component.html
per visualizzare il settimane
e meridiani
.
Salva le modifiche e sarai in grado di visualizzare le settimane ei meridiani visualizzati.
Luxon fornisce a Ambientazione
classe, utilizzando il quale è possibile gestire il comportamento generale di Luxon. Impostiamo le impostazioni internazionali predefinite di Luxon su EL
.
Importa il impostazioni
classe nel luxdate.component.ts
file.
import DateTime, Settings, Info da 'luxon';
Nel metodo costruttore di LuxdateComponent
, imposta le impostazioni locali predefinite come mostrato:
constructor () Settings.defaultLocale = 'el';
Salva le modifiche e avrai impostato il locale predefinito EL
.
La libreria Luxon fornisce un'interfaccia per ottenere i dettagli relativi alla zona di un particolare Appuntamento
oggetto. Per usarlo, è necessario importare Zona
dalla biblioteca di Luxon.
import DateTime, Settings, Info, Zone da 'luxon';
Proviamo ad usare Zone su un Luxon Appuntamento
oggetto. Crea un locale Appuntamento
Oggetto Luxon.
let dateObj = DateTime.local ();
Puoi usare il Zona
interfaccia sul dateObj
per ottenere il nome della zona. Aggiungere il seguente codice per registrare il nome della zona.
console.log ('Zone name is', dateObj.zone.name);
Salvare le modifiche e, durante l'esecuzione dell'app, sarà possibile visualizzare il nome della zona registrato nella console del browser.
Il nome della zona è Asia / Kolkata
Proviamo a stampare il nome della zona di un oggetto DateTime UTC.
let utcObj = DateTime.utc (); console.log ('Zone name is', utcObj.zone.name);
Il codice precedente stamperà il nome della zona come UTC
.
Il nome della zona è UTC
Il Luxon Zona
l'interfaccia fornisce un metodo per confrontare due Fusi orari
. Proviamo a confrontare il fuso orario
del Appuntamento
oggetti localObj
e utcObj
.
if (localObj.zone.equals (utcObj.zone)) console.log ('Entrambe le zone sono uguali'); else console.log ('Entrambe le zone sono diverse');
Come visto nel codice sopra, hai usato il zone.equals
metodo per confrontare le zone. Salva le modifiche e prova a eseguire l'app e il risultato verrà registrato.
Entrambe le zone sono diverse
Intervallo
in Luxon è un involucro per due Appuntamento
endpoint che possono essere manipolati usando i metodi di Luxon. Dalla documentazione ufficiale:
Un oggetto Interval rappresenta un intervallo di tempo semiaperto, in cui ogni endpoint è un DateTime. Concettualmente, è un contenitore per questi due endpoint, accompagnato da metodi per la creazione, l'analisi, l'interrogazione, il confronto, la trasformazione e la formattazione.
Ci sono un paio di modi diversi per creare un intervallo usando Luxon. Diamo un'occhiata a come creare un intervallo usando un inizio e una fine Appuntamento
oggetto.
Importare Intervallo
da Luxon in LuxdateComponent
.
importa Intervallo da 'luxon';
Creare un inizio
Appuntamento
oggetto e un fine
Appuntamento
oggetto.
let startDate = DateTime.local (); let endDate = DateTime.local (). plus (minuti: 15);
Come visto nel codice sopra, hai creato il data d'inizio
utilizzando l'ora locale corrente e data di fine
incrementando l'ora locale di 15 minuti.
Creare un intervallo usando il fromDateTimes
metodo.
let intv = Interval.fromDateTimes (startDate, endDate); console.log ('Interval is', intv);
Salvare le modifiche precedenti e, durante l'esecuzione dell'applicazione, verrà registrato l'intervallo.
Ora è possibile applicare il metodo Luxon per manipolare o formattare l'ora di inizio e di fine nell'oggetto intervallo. Diciamo che vuoi controllare il nome della zona dell'ora di inizio nell'intervallo. Puoi farlo usando il zone.name
proprietà come mostrato:
console.log ('Start date zone is', intv.s.zone.name);
Avrai il seguente output registrato nella console del browser:
La data di inizio è Asia / Kolkata
Luxon fornisce un paio di metodi per creare la durata. Per iniziare con la creazione della durata, è necessario importare Durata
nel tuo LuxdateComponent
.
importa Durata da 'luxon';
Una volta importato, puoi usare il fromMillis
metodo per creare una durata specificando i millisecondi.
let fiveMinute = Duration.fromMillis (5 * 60 * 1000); console.log ('Five minutes is', fiveMinute);
Salvare le modifiche e durante l'esecuzione dell'applicazione, si avrà quanto sopra fiveMinute
durata registrata.
Puoi anche usarne un altro Appuntamento
oggetto per creare una durata usando il fromObject
metodo. Ecco come appare il codice:
let startDate = DateTime.local (); lascia dur = Duration.fromObject (startDate); console.log ('Durata dall'oggetto è', dur);
Salva le modifiche e avrai la durata registrata nella console del browser.
In questo tutorial hai visto come iniziare a utilizzare la libreria Luxon per lavorare con data e ora in un progetto Web angolare. Hai imparato come gestire l'ora locale e l'ora UTC e come creare un intervallo e una durata utilizzando Luxon.
Per informazioni approfondite sull'uso della libreria Luxon, ti consiglio di leggere la documentazione ufficiale.
In che modo la tua esperienza ha imparato a lavorare con Luxon? Fateci sapere i vostri pensieri nei commenti qui sotto.