Moment.js (momentjs.com) est une bibliothèque JavaScript qui permet d'analyser des dates et des heures au format texte, de les manipuler, d'effectuer des opérations mathématiques et d'afficher les résultats. Cette bibliothèque est bien plus intuitive et exploitable que l'objet Date
natif du JavaScript.
La bibliothèque Moment.js ne nécessite qu'un seul fichier (moment-with-locales.min.js
) que vous pouvez télécharger sur le site officiel momentjs.com.
Vous pouvez aussi installer Moment.js avec npm
:
npm install moment --save
Intégrez le script sur votre page :
<script src="moment-with-locales.min.js"></script>
Les dates au format international
La bibliothèque minimale moment.min.js
ne propose que l'affichage américain des dates et heures.
Si vous voulez n'afficher les dates que dans le format US, utilisez plutôt le fichier moment.min.js
qui sera nettement plus léger :
<script src="moment.min.js"></script>
L'appel à moment()
retourne un objet de type Moment
avec la date et l'heure du jour.
Pour afficher l'objet Moment
, il suffit d'appeler la méthode format(formatage)
avec en paramètre une chaîne correspondant au format souhaité :
Par défaut, le format d'affichage local est "en"
:
En forçant globalement le format local à "fr"
avec :
moment.locale("fr")
l'affichage se fait bien en français.
Naturellement, on peut créer des dates précises, avec le format que l'on souhaite.
moment(valeur, format)
peut recevoir deux paramètres qui sont la valeur de la date et son format.
La dernière ligne construit une date invalide. Utilisez la méthode isValid()
pour contrôler que la saisie est correcte :
L'interêt de Moment.js est la facilité de manipulation des dates.
On peut ajouter ou enlever des durées avec la syntaxe :
add(valeur, type)
subtract(valeur, type)
La méthode fromNow()
retourne le temps écoulé par rapport à maintenant de manière lisible et arrondie intelligemment :
La méthode calendar()
retourne la date par rapport à aujourd'hui :
La méthode diff()
retourne la différence en millisecondes entre 2 dates :
La méthode diff()
peut aussi retourner la différence en une autre unité entre 2 dates :
La méthode moment.duration(nbMS)
crée une durée de nbMS
millisecondes.
La méthode moment.duration(valeur, type)
crée une durée de valeur
exprimée en type
.
duration
peut être négative.La méthode humanize()
convertit la durée en texte compréhensible et arrondi intelligemment :
La méthode daysInMonth()
donne le nombre de jours dans le mois de la date :
Les méthodes isBefore()
et isAfter()
comparent l'antériorité de 2 dates :
Moment
en Date
et inversementDe nombreux scripts nécessitent un objet de type Date
natif. Pour convertir un Moment
en Date
, utilisez la méthode toDate() :
Pour convertir une Date
en Moment
, passez la simplement en paramètre :
Pour conclure
Cette page n'aborde qu'une petite partie du potentiel de Moment.js.