Plac zabaw Moment.js i migracja do 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.
Format playground
Format tokens
Click a token to insert it into the format string. Examples use the reference date and locale.
| Token | Example | Meaning | |
|---|---|---|---|
| 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-timezone | Time zone abbreviation | ||
| needs moment-timezone | Time 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().
| Shift | 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') |
Durations
Recipes
Everyday tasks with live results. “Try” loads one into the code runner below.
| Task | Moment.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.
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
Ustaw Datę i czas odniesienia oraz Lokalizację i włącz Traktuj jako UTC, jeśli kod używa moment.utc().
- 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
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
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
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.
