Luxon : mieux manipuler date et heure en JavaScript

Par:
fredericmazue

mar, 27/09/2022 - 14:33

L'objet JavaScript Date n'est pas ce qu'il y a de plus convivial pour les développeurs qui préfèrent généralement utiliser la bibliothèque Moment.js pour manipuler date et heure. Moment.js n'est plus développée depuis 2020. Toutefois un de ses mainteneurs, Isaac Cambron, a estimé que Moment.js pouvait bénéficier d'améliorations.

Cependant, estimant aussi que Moment.js n'est pas une bonne base de code pour ces améliorations, Isaac a décidé d'écrire quelque chose à partir de zéro, une sorte de Moment modernisé : Luxon.

 Luxon est construit autour de quelques idées fondamentales :

  1. Conserver l'idée de base du wrapper de date chainable de Moment.
  2. Rendre tous les types immuables.
  3. Rendre l'API explicite ; différentes méthodes font des choses différentes et ont des options bien définies.
  4. Utiliser l'API Intl pour assurer l'internationalisation, y compris l'analyse des jetons. Revenez à l'anglais si le navigateur ne prend pas en charge ces API.
  5. Utiliser l'API Intl pour fournir un support de fuseau horaire. Uniquement possible pour les navigateurs modernes.
  6. Fournir un support de durée plus complet.
  7. Fournir directement un support d'intervalle.
  8. Rédiger des documents en ligne pour tout.

La classe la plus importante à Luxon est DateTime. Une instance DateTime représente une milliseconde spécifique dans le temps, ainsi qu'un fuseau horaire et des paramètres régionaux. En voici une qui représente le 15 mai 2017 à 8h30 du matin :

const dt = DateTime.local(2017, 5, 15, 8, 30);

Luxon vit dans le projet Moment. Issac Cambron décrit cette bibliothèque comme entièrement utlisable et il prévoit de la supporter indéfiniment.

Luxon est un logiciel libre sous licence MIT, disponible sur GitHub

La bibliothèque Luxon est entièrement documentée ici