Datumsformatierung mit Luxon
Die Standardanzeige von Daten aus unseren Modellen ist sehr unansehnlich: Mon Apr 10 2020 15:49:58 GMT+1100 (AUS Eastern Daylight Time). In diesem Abschnitt zeigen wir, wie Sie die Buchinstanz-Liste-Seite aus dem vorherigen Abschnitt aktualisieren können, um das due_date
-Feld in einem freundlicheren Format darzustellen: Apr 10th, 2023.
Der Ansatz, den wir verwenden werden, ist die Erstellung einer virtuellen Eigenschaft in unserem BookInstance
-Modell, die das formatierte Datum zurückgibt. Die eigentliche Formatierung führen wir mit luxon durch, einer leistungsstarken, modernen und benutzerfreundlichen Bibliothek zum Parsen, Validieren, Manipulieren, Formatieren und Lokalisieren von Daten.
Hinweis:
Es ist möglich, luxon zu verwenden, um die Strings direkt in unseren Pug-Vorlagen zu formatieren, oder wir könnten den String an verschiedenen anderen Stellen formatieren. Die Verwendung einer virtuellen Eigenschaft ermöglicht es uns, das formatierte Datum genau so zu erhalten, wie wir derzeit das due_date
erhalten.
Luxon installieren
Geben Sie den folgenden Befehl im Root-Verzeichnis des Projekts ein:
npm install luxon
Die virtuelle Eigenschaft erstellen
-
Öffnen Sie ./models/bookinstance.js.
-
Importieren Sie luxon am Anfang der Datei.
jsconst { DateTime } = require("luxon");
Fügen Sie die virtuelle Eigenschaft due_back_formatted
direkt nach der URL-Eigenschaft hinzu.
BookInstanceSchema.virtual("due_back_formatted").get(function () {
return DateTime.fromJSDate(this.due_back).toLocaleString(DateTime.DATE_MED);
});
Hinweis:
Luxon kann Strings in vielen Formaten importieren und sowohl in vordefinierten als auch frei gestalteten Formaten exportieren. In diesem Fall verwenden wir fromJSDate()
, um einen JavaScript-Datumsstring zu importieren, und toLocaleString()
, um das Datum im DATE_MED
-Format in Englisch auszugeben: Apr 10th, 2023.
Für Informationen über andere Formate und Internationalisierung von Datumsstrings siehe die Luxon-Dokumentation zum Formatieren.
Die Ansicht aktualisieren
Öffnen Sie /views/bookinstance_list.pug und ersetzen Sie due_back
durch due_back_formatted
.
if val.status != 'Available'
//span (Due: #{val.due_back} )
span (Due: #{val.due_back_formatted} )
Das war's. Wenn Sie im Seitenmenü zu Alle Buchinstanzen gehen, sollten Sie jetzt sehen, dass alle Fälligkeitsdaten deutlich ansprechender sind!
Nächste Schritte
- Kehren Sie zurück zur Express Tutorial Teil 5: Anzeigen von Bibliotheksdaten.
- Fahren Sie fort mit dem nächsten Unterartikel von Teil 5: Autorenseiteliste und Genre-Seitenliste Herausforderung.