Bac à sable Moment.js
Bac à sable interactif pour expérimenter l'API de date et d'heure Moment.js – formatage, analyse, manipulation des dates avec sortie en temps réel
Entrée
Sortie
Documentation
Qu’est‑ce que Moment.js ?
Moment.js est une bibliothèque JavaScript largement utilisée pour analyser, valider, manipuler et formater les dates. Avant l’apparition d’alternatives modernes, Moment.js était la référence de facto pour la gestion des dates dans les applications JavaScript. Elle fournit une API claire et chaînable qui rend le travail avec les dates intuitif et simple. Bien que des bibliothèques plus récentes comme date-fns et Luxon existent, Moment.js reste très utilisé dans les bases de code héritées et continue d’être maintenu activement pour les corrections de bugs. Comprendre Moment.js est essentiel pour les développeurs travaillant sur des projets existants qui en dépendent.
Pourquoi utiliser une bibliothèque de manipulation de dates ?
L’objet natif Date de JavaScript est notoirement difficile à manipuler. Il présente un comportement incohérent selon les navigateurs, un indexage des mois déroutant (0‑11 au lieu de 1‑12), des options de formatage limitées et aucune prise en charge native des fuseaux horaires. Les bibliothèques de dates comme Moment.js résolvent ces problèmes en offrant une API cohérente et bien documentée. Elles gèrent automatiquement les cas limites tels que les transitions d’heure d’été, les années bissextiles et le formatage spécifique à chaque locale, évitant aux développeurs d’écrire une logique de date sujette aux erreurs à partir de zéro.
Description de l’outil
Le Moment.js Playground est un environnement interactif basé sur le navigateur pour expérimenter avec la bibliothèque Moment.js. Écrivez et exécutez du code JavaScript directement dans l’éditeur avec un accès complet à Moment.js et Moment Timezone. Le playground exécute automatiquement votre code au fur et à mesure que vous tapez (avec dé‑bouncing) et affiche toute la sortie console dans un panneau de type terminal en dessous. C’est idéal pour apprendre Moment.js, tester des chaînes de format de date, déboguer des calculs de date et prototyper des logiques liées au temps sans installer d’environnement de développement.
Exemples
Formater la date actuelle :
const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// Output: December 30th, 2025
console.log(now.format("dddd, h:mm A"));
// Output: Monday, 3:45 PMAnalyser différents formats de date :
const date1 = moment("2025-12-25", "YYYY-MM-DD");
const date2 = moment("25/12/2025", "DD/MM/YYYY");
const date3 = moment("Dec 25, 2025", "MMM D, YYYY");
console.log(date1.format("dddd")); // Thursday
console.log(date2.isValid()); // true
console.log(date3.month()); // 11 (0-indexed)Calculer le temps relatif :
const past = moment().subtract(3, "days");
const future = moment().add(2, "weeks");
console.log(past.fromNow()); // 3 days ago
console.log(future.fromNow()); // in 14 days
console.log(past.from(future)); // 17 days agoArithmétique de dates :
const date = moment("2025-01-15");
const nextMonth = date.clone().add(1, "month");
const lastWeek = date.clone().subtract(1, "week");
const endOfMonth = date.clone().endOf("month");
console.log(nextMonth.format("YYYY-MM-DD")); // 2025-02-15
console.log(lastWeek.format("YYYY-MM-DD")); // 2025-01-08
console.log(endOfMonth.format("YYYY-MM-DD")); // 2025-01-31Travailler avec les durées :
const start = moment("2025-01-01");
const end = moment("2025-12-31");
const duration = moment.duration(end.diff(start));
console.log(duration.asDays() + " days"); // 364 days
console.log(duration.asWeeks() + " weeks"); // 52 weeks
console.log(duration.humanize()); // a yearComparer des dates :
const date1 = moment("2025-06-15");
const date2 = moment("2025-12-25");
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2, "year")); // true
console.log(date1.isBetween("2025-01-01", "2025-08-01")); // trueTravailler avec les fuseaux horaires :
const now = moment();
console.log(now.tz("America/New_York").format("h:mm A z"));
console.log(now.tz("Europe/London").format("h:mm A z"));
console.log(now.tz("Asia/Tokyo").format("h:mm A z"));Fonctionnalités
- Bibliothèque Moment.js complète : Accès à toutes les fonctions de Moment.js, y compris l’analyse, le formatage, la manipulation et la comparaison
- Prise en charge des fuseaux horaires : Moment Timezone est pré‑chargé pour travailler avec les fuseaux horaires du monde entier
- Exécution de code en direct : Le code s’exécute automatiquement au fur et à mesure que vous tapez grâce à un dé‑bouncing intelligent
- Terminal intégré : Visualisez instantanément la sortie console sans ouvrir les outils de développement du navigateur
- Coloration syntaxique : Mise en évidence de la syntaxe JavaScript pour une meilleure lisibilité du code
- Gestion des erreurs : Les erreurs d’exécution sont affichées clairement dans la sortie du terminal
Cas d’utilisation
- Apprendre Moment.js : Expérimentez avec l’API et voyez les résultats immédiatement, sans configuration de projet
- Tester des chaînes de format : Essayez différents jetons de format pour obtenir exactement la sortie de date souhaitée
- Déboguer des calculs de dates : Testez des arithmétiques de dates complexes avant de les implémenter dans votre application
- Conversions de fuseaux horaires : Convertissez rapidement des heures entre différents fuseaux horaires
- Maintenance de code hérité : Testez des extraits de code Moment.js lors de la maintenance d’applications existantes
Jetons de format courants
| Jeton | Description | Exemple |
|---|---|---|
YYYY |
année sur 4 chiffres | 2025 |
YY |
année sur 2 chiffres | 25 |
MM |
mois sur 2 chiffres | 01‑12 |
MMM |
nom court du mois | Jan, Feb |
MMMM |
nom complet du mois | January |
DD |
jour sur 2 chiffres | 01‑31 |
Do |
jour avec ordinal | 1st, 2nd, 3rd |
dddd |
nom complet du jour de la semaine | Monday |
ddd |
abréviation du jour | Mon |
HH |
heure sur 24 h | 00‑23 |
hh |
heure sur 12 h | 01‑12 |
mm |
minutes | 00‑59 |
ss |
secondes | 00‑59 |
A |
AM/PM (majuscule) | AM, PM |
a |
am/pm (minuscule) | am, pm |
z |
abréviation du fuseau horaire | EST, PST |
Z |
décalage du fuseau horaire | +05:00 |
Référence des méthodes courantes
| Méthode | Description | Exemple |
|---|---|---|
moment() |
Crée le moment actuel | moment() |
format(string) |
Formate en chaîne | moment().format("YYYY-MM-DD") |
add(n, unit) |
Ajoute du temps | moment().add(7, "days") |
subtract(n, unit) |
Soustrait du temps | moment().subtract(1, "month") |
startOf(unit) |
Début de l’unité | moment().startOf("week") |
endOf(unit) |
Fin de l’unité | moment().endOf("month") |
fromNow() |
Temps relatif | moment("2025-01-01").fromNow() |
diff(moment) |
Différence | momentA.diff(momentB, "days") |
isBefore(moment) |
Est‑avant | momentA.isBefore(momentB) |
isAfter(moment) |
Est‑après | momentA.isAfter(momentB) |
isSame(moment, unit) |
Est‑identique | momentA.isSame(momentB, "month") |
isValid() |
Vérifie la validité | moment("invalid").isValid() |
clone() |
Crée une copie | moment().clone() |
tz(zone) |
Convertit le fuseau horaire | moment().tz("America/New_York") |
Unités de temps
Moment.js prend en charge les unités de temps suivantes pour les opérations add, subtract, startOf, endOf et diff :
years/yquarters/Qmonths/Mweeks/wdays/dhours/hminutes/mseconds/smilliseconds/ms