Moment.js ist im Wartungsmodus, und das eigene Team empfiehlt für neue Projekte eine moderne Bibliothek. Day.js bietet fast dieselbe API in rund 2 KB – deshalb zeigt jeder Abschnitt hier auch das Day.js-Gegenstück.
Klicken Sie auf ein Token, um es in den Formatstring einzufügen. Die Beispiele nutzen Bezugsdatum und Gebietsschema.
| Token | Beispiel | Bedeutung | |
|---|---|---|---|
| Jahr und Quartal | |||
| Jahr, vierstellig | |||
| Jahr, zweistellig | |||
| Quartal (1–4) | |||
| Quartal, Ordinalzahl | |||
| Monat | |||
| Monat (1–12) | |||
| Monat, Ordinalzahl | |||
| Monat, zweistellig | |||
| Monatsname, kurz | |||
| Monatsname | |||
| Tag im Monat und Jahr | |||
| Tag im Monat | |||
| Tag im Monat, Ordinalzahl | |||
| Tag im Monat, zweistellig | |||
| Tag im Jahr | |||
| Tag im Jahr, dreistellig | |||
| Wochentag | |||
| Wochentag (0 = Sonntag) | |||
| Wochentag, kürzeste Form | |||
| Wochentag, kurz | |||
| Wochentag, ausgeschrieben | |||
| Wochentag nach Gebietsschema | |||
| ISO-Wochentag (1 = Montag) | |||
| Woche | |||
| Kalenderwoche nach Gebietsschema | |||
| Kalenderwoche, Ordinalzahl | |||
| Kalenderwoche, zweistellig | |||
| ISO-Kalenderwoche | |||
| ISO-Kalenderwoche, zweistellig | |||
| Wochenjahr nach Gebietsschema | |||
| ISO-Wochenjahr | |||
| Stunde | |||
| Stunde, 0–23 | |||
| Stunde, 00–23 | |||
| Stunde, 1–12 | |||
| Stunde, 01–12 | |||
| Stunde, 1–24 | |||
| Stunde, 01–24 | |||
| Minute und Sekunde | |||
| Minute | |||
| Minute, zweistellig | |||
| Sekunde | |||
| Sekunde, zweistellig | |||
| Zehntelsekunde | |||
| Hundertstelsekunde | |||
| Millisekunden | |||
| AM / PM | |||
| AM / PM | |||
| am / pm | |||
| Zeitzone | |||
| UTC-Offset, ±HH:mm | |||
| UTC-Offset, ±HHmm | |||
| braucht moment-timezone | Zeitzonen-Kürzel | ||
| braucht moment-timezone | Zeitzonenname | ||
| Unix-Zeit | |||
| Unix-Sekunden | |||
| Unix-Millisekunden | |||
| Lokalisierte Formate | |||
| Lokalisierte Uhrzeit | |||
| Lokalisierte Uhrzeit mit Sekunden | |||
| Lokalisiertes Datum, numerisch | |||
| Lokalisiertes Datum mit Monatsname | |||
| Lokalisiertes Datum mit Uhrzeit | |||
| Lokalisiertes Datum mit Wochentag und Uhrzeit | |||
| Kurzes numerisches Datum | |||
| Kurzes Datum mit Monatsname | |||
| Kurzes Datum mit Uhrzeit | |||
| Kurzes Datum mit Wochentag und Uhrzeit | |||
| Maskieren | |||
| Text in eckigen Klammern wird unverändert ausgegeben | |||
Leer lassen, um ISO 8601 zu parsen.
Jede Zeile verschiebt das Bezugsdatum und beschreibt das Ergebnis mit from() und calendar() relativ dazu.
| Verschiebung | from(ref) | calendar(ref) |
|---|---|---|
| .add(-45, 'second') | ||
| .add(-10, 'minute') | ||
| .add(-3, 'hour') | ||
| .add(-1, 'day') | ||
| .add(-5, 'day') | ||
| .add(-3, 'month') | ||
| .add(-2, 'year') | ||
| .add(30, 'minute') | ||
| .add(2, 'day') | ||
| .add(1, 'month') |
Alltägliche Aufgaben mit Live-Ergebnis. „Ausprobieren“ lädt eines in den Code-Runner unten.
| Aufgabe | Moment.js |
|---|---|
Aktuelle Zeit formatieren | moment().format('YYYY-MM-DD HH:mm:ss')→ |
Tage addieren | moment('2023-01-01').add(1, 'days').format('YYYY-MM-DD')→ |
Zeit ab jetzt | moment().subtract(7, 'days').fromNow()→ |
Erster Tag dieses Monats | moment().startOf('month').format('YYYY-MM-DD')→ |
Letzter Tag dieses Jahres | moment().endOf('year').format('YYYY-MM-DD')→ |
Beginn dieser Woche (je nach Gebietsschema) | moment().startOf('week').format('YYYY-MM-DD ddd')→ |
Tage zwischen zwei Daten | moment().diff(moment('2022-01-01'), 'days')→ |
Tage in diesem Monat | moment().daysInMonth()→ |
Quartal des Jahres | moment().quarter()→ |
Kalenderzeit | moment().add(1, 'days').calendar()→ |
Liegt ein Datum dazwischen? | moment('2024-12-31').isBetween('2024-01-01', '2025-01-01')→ |
Ist es heute? | moment().isSame(moment(), 'day')→ |
Ist es ein Schaltjahr? | moment('2024-01-01').isLeapYear()→ |
Datum strikt prüfen | moment('2023-02-30', 'YYYY-MM-DD', true).isValid()→ |
Eigenes Format parsen | moment('13/10/2026 14:30', 'DD/MM/YYYY HH:mm').format()→ |
Unix-Zeitstempel in Sekunden | moment().unix()→ |
Aktuelle Zeit in UTC | moment.utc().format()→ |
Zeit in einer anderen Zeitzone | braucht moment-timezone |
Dauer in Worten | moment.duration(90, 'minutes').humanize()→ |
Am Monatsende einen Monat addieren | moment('2026-01-31').add(1, 'months').format('YYYY-MM-DD')→ |
add() ohne Neuzuweisung aufrufen | (() => { const d = moment('2026-01-01'); d.add(1, 'days'); return d.format('YYYY-MM-DD') })()→ |
Geben Sie einen Ausdruck mit moment ein. Er läuft direkt in Ihrem Browser, mit allen Plugins aus den Rezepten und dem oben gewählten Gebietsschema.
Testen Sie Formatieren, Parsen, relative Zeit und Zeitdauern mit Moment.js, wobei neben jedem Moment-Ergebnis das Day.js-Ergebnis steht. Abweichungen werden markiert, sodass Sie vor einer Migration sehen, was sich ändert. Beide Bibliotheken laufen in Ihrem Browser.
Legen Sie Bezugsdatum und -zeit sowie ein Gebietsschema fest und aktivieren Sie Als UTC behandeln, wenn Ihr Code moment.utc() nutzt.
Geben Sie unter Formatstring ein Muster ein; die Ausgabe zeigt das Moment-Ergebnis und das von Day.js, markiert mit Gleiche Ausgabe oder Andere Ausgabe.
Prüfen Sie in der Tabelle Format-Tokens, welche Tokens Day.js fehlen oder ein Plugin brauchen, und fügen Sie Tokens per Klick ein.
Vergleichen Sie beide Bibliotheken im Parse-Playground, bei Relative Zeit und bei Zeitdauern; abweichende Day.js-Werte sind farbig hervorgehoben.
Unter Rezepte sehen Sie Alltagsaufgaben in beiden Bibliotheken; Ausprobieren führt die Moment-Variante im Code-Runner aus.
Moment.js ist im Wartungsmodus, und das eigene Team empfiehlt für neue Projekte eine moderne Bibliothek. Der Hinweis oben verlinkt den Projektstatus von Moment und den Day.js-Playground.
Vor allem die Veränderlichkeit: add() ändert bei Moment das Originalobjekt, Day.js gibt ein neues zurück, das Sie neu zuweisen müssen. Außerdem brauchen viele Funktionen Day.js-Plugins, die bei jedem Rezept genannt sind.
Qo, Mo, DDD, DDDD, e, E, S und SS. Die Tabelle Format-Tokens markiert sie mit nicht in Day.js und nennt für die übrigen das benötigte Plugin.
Zeitzonennamen brauchen das separate Add-on moment-timezone, das diese Seite nicht lädt; die Tabelle zeigt daher braucht moment-timezone. Day.js liefert sie über sein Plugin timezone.
Die genauen Versionen von Moment.js und Day.js stehen unter dem Einstellungsbereich.
Nein. Beide Bibliotheken und ihre Sprachdateien werden in diese Seite geladen, und alles, was Sie eingeben, wird in Ihrem Browser ausgewertet.