Moment.js-Spielplatz
Interaktiver Spielplatz zum Experimentieren mit der Moment.js-Datum‑ und Zeit‑API – formatieren, parsen und Daten manipulieren mit Live‑Ausgabe
Eingabe
Ausgabe
Readme
Was ist Moment.js?
Moment.js ist eine weit verbreitete JavaScript‑Bibliothek zum Parsen, Validieren, Manipulieren und Formatieren von Datumsangaben. Bevor moderne Alternativen entstanden, war Moment.js der de‑facto‑Standard für die Datumshandhabung in JavaScript‑Anwendungen. Sie bietet eine klare, kettenfähige API, die die Arbeit mit Datumswerten intuitiv und unkompliziert macht. Während neuere Bibliotheken wie date-fns und Luxon existieren, wird Moment.js nach wie vor stark in Legacy‑Codebases verwendet und aktiv für Bug‑Fixes gepflegt. Das Verständnis von Moment.js ist für Entwickler, die an bestehenden Projekten arbeiten, die darauf setzen, unerlässlich.
Warum eine Datums‑Manipulationsbibliothek verwenden?
Das native JavaScript‑Date‑Objekt ist notorisch schwer zu handhaben. Es weist inkonsistentes Verhalten in verschiedenen Browsern auf, verwirrende Monatsindizierung (0‑11 statt 1‑12), eingeschränkte Formatierungsoptionen und keinen integrierten Zeitzonen‑Support. Datumsbibliotheken wie Moment.js lösen diese Probleme, indem sie eine konsistente, gut dokumentierte API bereitstellen. Sie behandeln Sonderfälle wie Sommerzeit‑Umstellungen, Schaltjahre und lokalspezifische Formatierung automatisch und ersparen Entwicklern das Schreiben fehleranfälliger Datum‑Logik von Grund auf.
Werkzeugbeschreibung
Der Moment.js Playground ist eine interaktive, browserbasierte Umgebung zum Experimentieren mit der Moment.js‑Bibliothek. Schreiben und führen Sie JavaScript‑Code direkt im Editor aus, mit vollem Zugriff auf Moment.js und Moment Timezone. Der Playground führt Ihren Code automatisch beim Tippen aus (mit Debouncing) und zeigt sämtliche Konsolenausgaben in einem terminal‑ähnlichen Panel unten an. Ideal zum Lernen von Moment.js, Testen von Datumsformat‑Strings, Debuggen von Datumsberechnungen und Prototypisieren von zeitbezogener Logik, ohne eine Entwicklungsumgebung einrichten zu müssen.
Beispiele
Formatieren des aktuellen Datums:
const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// Ausgabe: Dezember 30, 2025
console.log(now.format("dddd, h:mm A"));
// Ausgabe: Montag, 3:45 PMParsen verschiedener Datumsformate:
const date1 = moment("2025-12-25", "YYYY-MM-DD");
const date2 = moment("25/12/2025", "DD/MM/YYYY");
const date3 = moment("Dec 25, 2025", "MMM D, YYYY");
console.log(date1.format("dddd")); // Donnerstag
console.log(date2.isValid()); // true
console.log(date3.month()); // 11 (0‑indiziert)Berechnen relativer Zeiten:
const past = moment().subtract(3, "days");
const future = moment().add(2, "weeks");
console.log(past.fromNow()); // vor 3 Tagen
console.log(future.fromNow()); // in 14 Tagen
console.log(past.from(future)); // vor 17 TagenDatumsarithmetik:
const date = moment("2025-01-15");
const nextMonth = date.clone().add(1, "month");
const lastWeek = date.clone().subtract(1, "week");
const endOfMonth = date.clone().endOf("month");
console.log(nextMonth.format("YYYY-MM-DD")); // 2025-02-15
console.log(lastWeek.format("YYYY-MM-DD")); // 2025-01-08
console.log(endOfMonth.format("YYYY-MM-DD")); // 2025-01-31Arbeiten mit Zeitspannen:
const start = moment("2025-01-01");
const end = moment("2025-12-31");
const duration = moment.duration(end.diff(start));
console.log(duration.asDays() + " days"); // 364 days
console.log(duration.asWeeks() + " weeks"); // 52 weeks
console.log(duration.humanize()); // a yearDatumsvergleich:
const date1 = moment("2025-06-15");
const date2 = moment("2025-12-25");
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2, "year")); // true
console.log(date1.isBetween("2025-01-01", "2025-08-01")); // trueArbeiten mit Zeitzonen:
const now = moment();
console.log(now.tz("America/New_York").format("h:mm A z"));
console.log(now.tz("Europe/London").format("h:mm A z"));
console.log(now.tz("Asia/Tokyo").format("h:mm A z"));Funktionen
- Vollständige Moment.js‑Bibliothek: Zugriff auf alle Moment.js‑Funktionen inkl. Parsen, Formatieren, Manipulation und Vergleich
- Zeitzonen‑Support: Moment Timezone ist vorab geladen für die Arbeit mit Zeitzonen weltweit
- Live‑Code‑Ausführung: Code wird automatisch beim Tippen mit intelligentem Debouncing ausgeführt
- Eingebautes Terminal: Konsolenausgabe sofort sichtbar, ohne die Entwickler‑Tools des Browsers zu öffnen
- Syntax‑Highlighting: JavaScript‑Syntax‑Highlighting für bessere Lesbarkeit des Codes
- Fehlerbehandlung: Laufzeitfehler werden klar im Terminal‑Output angezeigt
Anwendungsfälle
- Moment.js lernen: Experimentieren Sie mit der API und sehen Sie sofortige Ergebnisse, ohne ein Projekt aufzusetzen
- Format‑String‑Tests: Probieren Sie verschiedene Format‑Tokens aus, um exakt das gewünschte Datum zu erhalten
- Debugging von Datumsberechnungen: Testen Sie komplexe Datumsarithmetik, bevor Sie sie in Ihre Anwendung integrieren
- Zeitzonen‑Konvertierungen: Schnell Zeiten zwischen verschiedenen Zeitzonen umrechnen
- Wartung von Legacy‑Code: Testen Sie Moment.js‑Code‑Snippets beim Pflegen bestehender Anwendungen
Häufige Format‑Tokens
| Token | Beschreibung | Beispiel |
|---|---|---|
YYYY |
4‑stellige Jahreszahl | 2025 |
YY |
2‑stellige Jahreszahl | 25 |
MM |
2‑stelliger Monat | 01‑12 |
MMM |
Kurzform des Monatsnamens | Jan, Feb |
MMMM |
Vollständiger Monatsname | Januar |
DD |
2‑stelliger Tag | 01‑31 |
Do |
Tag mit Ordnungszahl | 1st, 2nd, 3rd |
dddd |
Vollständiger Wochentagsname | Montag |
ddd |
Kurzform des Wochentags | Mo |
HH |
24‑Stunden‑Stunde | 00‑23 |
hh |
12‑Stunden‑Stunde | 01‑12 |
mm |
Minuten | 00‑59 |
ss |
Sekunden | 00‑59 |
A |
AM/PM (groß) | AM, PM |
a |
am/pm (klein) | am, pm |
z |
Zeitzonen‑Abkürzung | EST, PST |
Z |
Zeitzonen‑Offset | +05:00 |
Häufige Methoden‑Referenz
| Methode | Beschreibung | Beispiel |
|---|---|---|
moment() |
Aktuellen Moment erzeugen | moment() |
format(string) |
In String formatieren | moment().format("YYYY-MM-DD") |
add(n, unit) |
Zeit hinzufügen | moment().add(7, "days") |
subtract(n, unit) |
Zeit subtrahieren | moment().subtract(1, "month") |
startOf(unit) |
Beginn der Einheit | moment().startOf("week") |
endOf(unit) |
Ende der Einheit | moment().endOf("month") |
fromNow() |
Relative Zeit | moment("2025-01-01").fromNow() |
diff(moment) |
Differenz | momentA.diff(momentB, "days") |
isBefore(moment) |
Ist vorher | momentA.isBefore(momentB) |
isAfter(moment) |
Ist nach | momentA.isAfter(momentB) |
isSame(moment, unit) |
Ist gleich | momentA.isSame(momentB, "month") |
isValid() |
Gültigkeit prüfen | moment("invalid").isValid() |
clone() |
Kopie erstellen | moment().clone() |
tz(zone) |
Zeitzone konvertieren | moment().tz("America/New_York") |
Zeiteinheiten
Moment.js unterstützt die folgenden Zeiteinheiten für add, subtract, startOf, endOf und diff‑Operationen:
years/y– Jahrequarters/Q– Quartalemonths/M– Monateweeks/w– Wochendays/d– Tagehours/h– Stundenminutes/m– Minutenseconds/s– Sekundenmilliseconds/ms– Millisekunden