Playground do Moment.js e migração para Day.js
- Os arquivos não saem do seu dispositivo
- Roda no navegador
- Grátis, sem cadastro, sem marca d’água
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.
Como usar Playground do Moment.js e migração para Day.js
Teste formatação, análise, tempo relativo e durações do Moment.js, com o resultado do Day.js ao lado de cada resultado do Moment. As diferenças são marcadas, para você ver o que mudaria antes de migrar um código. As duas bibliotecas rodam no seu navegador.
- 1
Defina a Data e hora de referência e um Locale, e ative Tratar como UTC se o seu código usa moment.utc().
- 2
Digite um padrão em String de formato; a Saída mostra o resultado do Moment e o que o Day.js dá, marcado como Mesma saída ou Saída diferente.
- 3
Confira a tabela Tokens de formato para tokens que o Day.js não tem ou para os quais precisa de um plugin, e clique em um token para inseri-lo.
- 4
Compare as duas bibliotecas no Playground de análise, Tempo relativo e Durações, onde os valores do Day.js que diferem são destacados.
- 5
Use Receitas para código lado a lado de tarefas do dia a dia e clique em Experimentar para rodar a versão Moment no Executor de código.
Perguntas frequentes
O Moment.js ainda é mantido?
O Moment.js está em modo de manutenção, e a própria equipe recomenda uma biblioteca moderna para projetos novos. A nota no topo aponta para a página de status do projeto Moment e para o playground do Day.js.
O que costuma quebrar ao mudar para o Day.js?
Mutabilidade: o add() do Moment altera o objeto original, enquanto o Day.js devolve um novo, então os resultados precisam ser reatribuídos. Muitos recursos também precisam de plugins do Day.js, que cada receita lista.
Quais tokens de formato não têm equivalente no Day.js?
Qo, Mo, DDD, DDDD, e, E, S e SS. A tabela Tokens de formato marca-os como ausentes no Day.js e nomeia o plugin necessário para os outros.
Por que os tokens z e zzz não funcionam no Moment?
Nomes de fuso horário precisam do complemento separado moment-timezone, que esta página não carrega, então a tabela mostra precisa de moment-timezone. O Day.js os oferece pelo plugin timezone.
Quais versões são comparadas?
As versões exatas do Moment.js e do Day.js aparecem abaixo do painel de configurações.
Meu código é enviado a um servidor?
Não. As duas bibliotecas e os arquivos de locale carregam nesta página, e tudo o que você digita é avaliado no seu navegador.
