© Teguh Jati Prasetyo/Shutterstock.com
Gutes Date-Handling in JavaScript

Node.js-Module:


Die Arbeit mit Datumswerten ist ein Problem der ersten Stunde der Sprache. Zwar verfügt JavaScript im Kern über ein Date-Objekt, mit dem Sie theoretisch Datumsberechnungen durchführen können, wären da nicht etliche Schwächen des API. Doch es gibt zum Glück hilfreiche Bibliotheken, die uns eine Menge Arbeit ersparen können.

Ein Problem ist beispielsweise der Umgang mit verschiedenen Zeitzonen bei den Datumsobjekten, so nutzt JavaScript die aktuelle Zeitzone des Systems als Grundlage. Gerade bei zeitzonenübergreifenden Applikationen kann das zu Schwierigkeiten führen. Eine weitere Eigenheit des Date-Objekts in JavaScript ist die Repräsentation des Monats. Der Januar wird beispielsweise mit dem Wert 0 angegeben. Bei Tages- und Jahreszahl folgt JavaScript jedoch wiederum dem zu erwartenden Standard, so wird der 5. eines Monats durch die Zahl 5 repräsentiert.

Bei der Implementierung einer Applikation, die mit Datumswerten arbeitet, stoßen Sie häufig auf die Aufgabe, dass Sie diese erzeugen, modifizieren und ausgeben müssen. Das Erzeugen und Ausgeben ist problemlos mit den Bordmitteln von JavaScript möglich. Kommt es jedoch zur Modifikation eines Datums, wollen Sie also von einem Datum beispielsweise zwei Tage abziehen, ist das nicht mehr ohne Weiteres möglich. Natürlich können Sie sich den Zeitstempel des Datums holen und dann die entsprechende Anzahl von Millisekunden abziehen, um auf das Zieldatum zu kommen. Gut lesbar und wartungsfreundlich oder gar sonderlich elegant ist dieser Lösungsansatz jedoch nicht. Aus diesem Grund und etlichen weiteren Gründen sind in der Vergangenheit zahlreiche Bibliotheken entstanden, die Ihnen den Umgang mit Datumswerten in JavaScript erleichtern sollen. Eine der auf dem Markt am weitesten verbreiteten Lösungen ist Moment.js. Der Platzhirsch hat jedoch vor einiger Zeit einen ernstzunehmenden Konkurrenten bekommen: Das Projekt date-fns.

Wie unterscheidet sich date-fns von Moment.js?

Der erste und einer der wichtigsten Unterschiede steckt bereits im Namen des Projekts, denn fns steht für Functions. date-fns ist eine Sammlung von Funktionen, mit deren Hilfe Sie mit Datumswerten arbeiten können. Im Gegensatz dazu verfolgt Moment.js einen objektorientierten Ansatz. Hier erzeugen Sie eine Moment-Instanz und arbeiten mit den Methoden dieses Objekts. Das hat natürlich Auswirkungen auf die Paketgröße. Standardmäßig beinhaltet Moment.js die gesamte Schnittstelle. Sie können das Paket zwar optimieren, hierfür sind jedoch zusätzliche Schr...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang