Bac à sable Moment.js et migration vers Day.js
- Les fichiers ne quittent pas votre appareil
- S’exécute dans le navigateur
- Gratuit, sans compte, sans filigrane
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.
Comment utiliser Bac à sable Moment.js et migration vers Day.js
Testez le formatage, l'analyse, le temps relatif et les durées de Moment.js, avec le résultat Day.js affiché à côté de chaque résultat Moment. Les différences sont signalées, afin de voir ce qui changerait avant de migrer une base de code. Les deux bibliothèques s'exécutent dans votre navigateur.
- 1
Réglez la Date et l'heure de référence et une Locale, et activez Traiter comme UTC si votre code utilise moment.utc().
- 2
Saisissez un motif dans Chaîne de format ; la Sortie montre le résultat de Moment et ce que donne Day.js, marqué Même sortie ou Sortie différente.
- 3
Consultez le tableau Jetons de format pour les jetons que Day.js n'a pas ou qui exigent un plugin, et cliquez sur un jeton pour l'insérer.
- 4
Comparez les deux bibliothèques dans le Bac à sable d'analyse, le Temps relatif et les Durées, où les valeurs Day.js qui diffèrent sont mises en évidence.
- 5
Utilisez les Recettes pour du code côte à côte des tâches courantes, et cliquez sur Essayer pour exécuter la version Moment dans l'Exécuteur de code.
Questions fréquentes
Moment.js est-il encore maintenu ?
Moment.js est en mode maintenance, et sa propre équipe recommande une bibliothèque moderne pour les nouveaux projets. La note en haut renvoie vers la page d'état du projet Moment et vers le bac à sable Day.js.
Qu'est-ce qui casse en général lors du passage à Day.js ?
La mutabilité : add() de Moment modifie l'objet d'origine, tandis que Day.js en renvoie un nouveau, les résultats doivent donc être réassignés. De nombreuses fonctions exigent aussi des plugins Day.js, que chaque recette liste.
Quels jetons de format n'ont pas d'équivalent Day.js ?
Qo, Mo, DDD, DDDD, e, E, S et SS. Le tableau Jetons de format les marque comme absents de Day.js et nomme le plugin nécessaire pour les autres.
Pourquoi les jetons z et zzz ne fonctionnent-ils pas dans Moment ?
Les noms de fuseaux horaires exigent le module séparé moment-timezone, que cette page ne charge pas, le tableau indique donc needs moment-timezone. Day.js les fournit via son plugin timezone.
Quelles versions sont comparées ?
Les versions exactes de Moment.js et de Day.js sont indiquées sous le panneau de réglages.
Mon code est-il envoyé à un serveur ?
Non. Les deux bibliothèques et leurs fichiers de locale se chargent dans cette page, et tout ce que vous saisissez est évalué dans votre navigateur.
