Plac zabaw Moment.js i migracja do Day.js

Wypróbuj formaty Moment.js na żywo i zobacz obok odpowiednik w Day.js
  • Pliki nie opuszczają urządzenia
  • Działa w przeglądarce
  • Za darmo, bez konta, bez znaku wodnego

Moment.js is in maintenance mode, and its own team recommends a modern library for new projects. Day.js keeps nearly the same API in about 2 KB, so every section here also shows the Day.js equivalent.

Moment project statusOpen the Day.js playground

Loading Moment.js…

Format playground

Output
 

Format tokens

Click a token to insert it into the format string. Examples use the reference date and locale.

TokenExampleMeaning
Year and quarter
Four-digit year
Two-digit year
Quarter (1–4)
Quarter, ordinal
Month
Month (1–12)
Month, ordinal
Month, two digits
Month, short name
Month, full name
Day of month and year
Day of month
Day of month, ordinal
Day of month, two digits
Day of year
Day of year, three digits
Day of week
Day of week (0 = Sunday)
Weekday, shortest name
Weekday, short name
Weekday, full name
Day of week, by locale
ISO day of week (1 = Monday)
Week
Week of year, by locale
Week of year, ordinal
Week of year, two digits
ISO week of year
ISO week, two digits
Week-numbering year, by locale
ISO week-numbering year
Hour
Hour, 0–23
Hour, 00–23
Hour, 1–12
Hour, 01–12
Hour, 1–24
Hour, 01–24
Minute and second
Minute
Minute, two digits
Second
Second, two digits
Tenths of a second
Hundredths of a second
Milliseconds
AM / PM
AM / PM
am / pm
Time zone
UTC offset, ±HH:mm
UTC offset, ±HHmm
needs moment-timezoneTime zone abbreviation
needs moment-timezoneTime zone name
Unix time
Unix seconds
Unix milliseconds
Localized formats
Localized time
Localized time with seconds
Localized numeric date
Localized date with month name
Localized date and time
Localized date and time with weekday
Short numeric date
Short date with month name
Short date and time
Short date and time with weekday
Escaping
Text in square brackets is printed as is

Parse playground

Leave empty to parse ISO 8601.

Relative time

Each row shifts the reference date, then describes it relative to the reference with from() and calendar().

Shiftfrom(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')

Durations

Recipes

Everyday tasks with live results. “Try” loads one into the code runner below.

Moment objects are mutable: add() changes the original. Day.js returns a new object from every operation, so reassign the result.
TaskMoment.js
Format the current time
moment().format('YYYY-MM-DD HH:mm:ss')
→
Add days
moment('2023-01-01').add(1, 'days').format('YYYY-MM-DD')
→
Time from now
moment().subtract(7, 'days').fromNow()
→
First day of this month
moment().startOf('month').format('YYYY-MM-DD')
→
Last day of this year
moment().endOf('year').format('YYYY-MM-DD')
→
Start of this week (locale aware)
moment().startOf('week').format('YYYY-MM-DD ddd')
→
Days between two dates
moment().diff(moment('2022-01-01'), 'days')
→
Days in this month
moment().daysInMonth()
→
Quarter of the year
moment().quarter()
→
Calendar time
moment().add(1, 'days').calendar()
→
Is a date between two others
moment('2024-12-31').isBetween('2024-01-01', '2025-01-01')
→
Is it today
moment().isSame(moment(), 'day')
→
Is it a leap year
moment('2024-01-01').isLeapYear()
→
Validate a date strictly
moment('2023-02-30', 'YYYY-MM-DD', true).isValid()
→
Parse a custom format
moment('13/10/2026 14:30', 'DD/MM/YYYY HH:mm').format()
→
Unix timestamp in seconds
moment().unix()
→
Current time in UTC
moment.utc().format()
→
Time in another time zone
needs moment-timezone
Humanize a duration
moment.duration(90, 'minutes').humanize()
→
Add a month at the end of a month
moment('2026-01-31').add(1, 'months').format('YYYY-MM-DD')
→
Call add() without reassigning
(() => { const d = moment('2026-01-01'); d.add(1, 'days'); return d.format('YYYY-MM-DD') })()
→

Code runner

Type an expression that uses moment. It runs right here in your browser, with every plugin from the recipes enabled and the locale above.

Result

Jak używać: Plac zabaw Moment.js i migracja do Day.js

Testuj formatowanie, parsowanie, czas względny i czasy trwania Moment.js, a obok każdego wyniku Moment zobaczysz wynik Day.js. Różnice są oznaczane, więc przed migracją kodu widać, co by się zmieniło. Obie biblioteki działają w przeglądarce.

  1. 1

    Ustaw Datę i czas odniesienia oraz Lokalizację i włącz Traktuj jako UTC, jeśli kod używa moment.utc().

  2. 2

    Wpisz wzorzec w Ciągu formatu; Wynik pokazuje rezultat Moment i to, co daje Day.js, oznaczone Tym samym wynikiem albo Innym wynikiem.

  3. 3

    Sprawdź tabelę Tokenów formatu pod kątem tokenów, których Day.js nie ma albo do których potrzebuje wtyczki, i kliknij token, aby go wstawić.

  4. 4

    Porównaj obie biblioteki w Plac zabaw parsowania, Czasie względnym i Czasach trwania, gdzie wartości Day.js, które się różnią, są wyróżnione.

  5. 5

    Użyj Przepisów, aby zobaczyć kod codziennych zadań obok siebie, i kliknij Wypróbuj, aby uruchomić wersję Moment w Uruchamiaczu kodu.

Częste pytania

Czy Moment.js jest nadal utrzymywany?

Moment.js jest w trybie utrzymania, a jego zespół zaleca nowoczesną bibliotekę do nowych projektów. Notatka u góry prowadzi do strony statusu projektu Moment i do placu zabaw Day.js.

Co zwykle się psuje przy przejściu na Day.js?

Zmienność: add() w Moment zmienia oryginalny obiekt, a Day.js zwraca nowy, więc wyniki trzeba przypisać ponownie. Wiele funkcji wymaga też wtyczek Day.js, które każdy przepis wymienia.

Które tokeny formatu nie mają odpowiednika w Day.js?

Qo, Mo, DDD, DDDD, e, E, S i SS. Tabela Tokenów formatu oznacza je jako niedostępne w Day.js i podaje wtyczkę potrzebną dla pozostałych.

Dlaczego tokeny z i zzz nie działają w Moment?

Nazwy stref czasowych wymagają osobnego dodatku moment-timezone, którego ta strona nie wczytuje, więc tabela pokazuje needs moment-timezone. Day.js dostarcza je przez wtyczkę timezone.

Które wersje są porównywane?

Dokładne wersje Moment.js i Day.js są pokazane pod panelem ustawień.

Czy mój kod jest wysyłany na serwer?

Nie. Obie biblioteki i ich pliki lokalizacji wczytują się na tę stronę, a wszystko, co wpiszesz, jest wykonywane w przeglądarce.