Playground do Moment.js e migração para Day.js

Teste formatos do Moment.js ao vivo e veja o equivalente em Day.js lado a lado
  • 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.

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

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. 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. 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. 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. 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. 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.