Moment.js / Day.js für JavaScript (Node.js): Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist diese Bibliothek und wozu wird sie benötigt

\n\n

Moment.js und Day.js sind zwei leistungsstarke Bibliotheken für JavaScript, die für die Arbeit mit Datums- und Zeitangaben entwickelt wurden. Sie lösen ein grundlegendes Problem: Das native Date-Objekt in JavaScript ist für alltägliche Aufgaben äußerst unpraktisch. Es unterstützt keine Formatierung, komplexe Datumsberechnungen, das Parsen von Zeichenketten in verschiedenen Formaten oder die Arbeit mit Zeitzonen, ohne Dutzende von Codezeilen schreiben zu müssen.

\n\n

Moment.js war lange Zeit der De-facto-Standard, gilt aber heute als "Legacy" – seine Entwicklung wurde eingestellt und es wird aufgrund seiner Größe (ca. 300 KB) nicht mehr für neue Projekte empfohlen. Als Nachfolger kam Day.js – eine leichte (nur 2 KB) und schnelle Bibliothek mit nahezu identischer API. Day.js ist in den meisten grundlegenden Operationen vollständig kompatibel mit Moment.js, was eine einfache Migration ermöglicht.

\n\n

Beide Bibliotheken bieten:

\n
    \n
  • Parsen von Datumsangaben aus Zeichenketten in beliebigen Formaten
  • \n
  • Formatierung von Datumsangaben in lesbare Zeichenketten
  • \n
  • Manipulationen (Hinzufügen/Subtrahieren von Tagen, Monaten, Jahren)
  • \n
  • Vergleich von Datumsangaben (vor, nach, zwischen)
  • \n
  • Arbeit mit Zeitzonen (über Plugins)
  • \n
  • Lokalisierung (Unterstützung verschiedener Sprachen und regionaler Formate)
  • \n
\n\n

In diesem Artikel betrachten wir Day.js als moderne Alternative, aber alle Beispiele funktionieren auch mit Moment.js mit minimalen Änderungen.

\n\n

Installation

\n\n

Die Installation für Node.js erfolgt über npm oder yarn. Für den Browser kann CDN verwendet werden.

\n\n

Installation von Day.js

\n
# Über npm\nnpm install dayjs\n\n# Über yarn\nyarn add dayjs
\n\n

Installation von Moment.js

\n
npm install moment\n\n# oder\nyarn add moment
\n\n

Einbindung in das Projekt

\n
// Day.js\nconst dayjs = require('dayjs');\n\n// Moment.js\nconst moment = require('moment');
\n\n

Schnellstart mit Codebeispiel

\n\n

Nach der Installation können Sie sofort mit der Arbeit mit Datumsangaben beginnen. Hier ist ein minimales Beispiel, das die grundlegenden Funktionen demonstriert:

\n\n
const dayjs = require('dayjs');\n\n// Aktuelles Datum und Uhrzeit\nconst now = dayjs();\nconsole.log('Jetzt:', now.format('DD.MM.YYYY HH:mm:ss'));\n\n// Parsen einer Zeichenkette\nconst date = dayjs('2024-03-15');\nconsole.log('Parsen:', date.format('DD.MM.YYYY'));\n\n// Manipulationen\nconst nextWeek = dayjs().add(7, 'day');\nconsole.log('In einer Woche:', nextWeek.format('DD.MM.YYYY'));\n\n// Differenz zwischen Datumsangaben\nconst diff = nextWeek.diff(now, 'day');\nconsole.log('Differenz in Tagen:', diff);\n\n// Vergleich\nconsole.log('Ist heute früher?', now.isBefore(nextWeek)); // true
\n\n

Wichtige Methoden/Funktionen

\n\n

1. dayjs() — Erstellen eines Datumsobjekts

\n

Was es tut: Erstellt ein Day.js-Objekt, das einen bestimmten Zeitpunkt darstellt. Ohne Argumente wird das aktuelle Datum und die aktuelle Uhrzeit zurückgegeben.

\n

Parameter:

\n
    \n
  • date (optional) — Zeichenkette, Zahl (Timestamp), Date-Objekt oder ein anderes Day.js-Objekt
  • \n
  • format (optional) — Formatzeichenkette für das Parsen, wenn date eine Zeichenkette ist
  • \n
\n

Arbeitsbeispiel:

\n
// Aktuelles Datum\nconst now = dayjs();\n\n// Aus einer Zeichenkette\nconst fromString = dayjs('2024-12-31');\n\n// Aus einem Timestamp (Millisekunden)\nconst fromTimestamp = dayjs(1704067200000);\n\n// Aus einem Date-Objekt\nconst fromDate = dayjs(new Date(2024, 0, 1)); // 1. Januar 2024\n\n// Mit Angabe des Formats\nconst customFormat = dayjs('31.12.2024', 'DD.MM.YYYY');\n\nconsole.log(now.format()); // 2024-03-15T10:30:00+03:00\nconsole.log(customFormat.format('YYYY-MM-DD')); // 2024-12-31
\n\n

2. format() — Datumsformatierung

\n

Was es tut: Wandelt das Datumsobjekt in eine Zeichenkette gemäß dem angegebenen Format um

Empfehlungen