Zona de pruebas de Moment.js y migración a Day.js
- Los archivos no salen de tu dispositivo
- Se ejecuta en el navegador
- Gratis, sin registro ni marca de agua
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.
Cómo usar Zona de pruebas de Moment.js y migración a Day.js
Prueba el formato, el análisis, el tiempo relativo y las duraciones de Moment.js, con el resultado de Day.js al lado de cada resultado de Moment. Las diferencias se marcan, para que veas qué cambiaría antes de migrar un código. Las dos bibliotecas se ejecutan en tu navegador.
- 1
Define la Fecha y hora de referencia y un Idioma, y activa Tratar como UTC si tu código usa moment.utc().
- 2
Escribe un patrón en Cadena de formato; la Salida muestra el resultado de Moment y lo que da Day.js, marcado como Misma salida o Salida distinta.
- 3
Revisa la tabla Tokens de formato para los tokens que a Day.js le faltan o para los que necesita un plugin, y haz clic en un token para insertarlo.
- 4
Compara las dos bibliotecas en Zona de pruebas de análisis, Tiempo relativo y Duraciones, donde se resaltan los valores de Day.js que difieren.
- 5
Usa Recetas para ver el código lado a lado de tareas cotidianas, y haz clic en Probar para ejecutar la versión de Moment en el Ejecutor de código.
Preguntas frecuentes
¿Moment.js sigue en mantenimiento?
Moment.js está en modo de mantenimiento, y su propio equipo recomienda una biblioteca moderna para proyectos nuevos. La nota de arriba enlaza a la página de estado del proyecto Moment y a la zona de pruebas de Day.js.
¿Qué suele romperse al pasar a Day.js?
La mutabilidad: add() de Moment cambia el objeto original, mientras que Day.js devuelve uno nuevo, así que hay que reasignar los resultados. Muchas funciones también necesitan plugins de Day.js, que cada receta lista.
¿Qué tokens de formato no tienen equivalente en Day.js?
Qo, Mo, DDD, DDDD, e, E, S y SS. La tabla Tokens de formato los marca como ausentes en Day.js y nombra el plugin necesario para los demás.
¿Por qué los tokens z y zzz no funcionan en Moment?
Los nombres de zona horaria necesitan el complemento aparte moment-timezone, que esta página no carga, así que la tabla muestra necesita moment-timezone. Day.js los ofrece a través de su plugin timezone.
¿Qué versiones se comparan?
Las versiones exactas de Moment.js y Day.js se muestran debajo del panel de ajustes.
¿Mi código se envía a un servidor?
No. Las dos bibliotecas y sus archivos de idioma se cargan en esta página, y todo lo que escribes se evalúa en tu navegador.
