JavaScript Date Handling

Obtenir efficacement les noms des mois en JavaScript

Spread the love

JavaScript offre plusieurs méthodes efficaces pour récupérer le nom d’un mois à partir d’un objet date. Cet article explore trois méthodes courantes, chacune offrant des avantages et des inconvénients uniques.

Table des matières

Utilisation de la fonction toLocaleString

La méthode toLocaleString() offre un moyen concis de formater les dates en fonction des paramètres régionaux de l’utilisateur. Cela garantit que le nom du mois est affiché dans sa langue préférée. Cependant, une gestion minutieuse est nécessaire pour isoler le nom du mois.


const date = new Date();
const monthName = date.toLocaleString('default', { month: 'long' }); 

console.log(monthName); // Sortie : (par exemple, "octobre", "novembre", etc.)

// Spécification des paramètres régionaux :
const frenchMonthName = date.toLocaleString('fr-FR', { month: 'long' });
console.log(frenchMonthName); // Sortie : (par exemple, "octobre", "novembre", etc.)

Les paramètres régionaux 'default' utilisent les paramètres du navigateur de l’utilisateur. Vous pouvez spécifier des paramètres régionaux comme 'fr-FR' (français) ou 'es-ES' (espagnol). L’option month: 'long' demande le nom complet du mois ; utilisez month: 'short' pour les abréviations.

Utilisation de l’objet Intl.DateTimeFormat

L’objet Intl.DateTimeFormat offre un contrôle plus granulaire sur le formatage des dates que toLocaleString(), permettant des personnalisations complexes et une meilleure gestion des paramètres régionaux.


const date = new Date();
const options = { month: 'long' };
const formatter = new Intl.DateTimeFormat('default', options); // Ou spécifiez les paramètres régionaux : 'fr-FR'
const monthName = formatter.format(date);

console.log(monthName); // Sortie : (par exemple, "octobre", "novembre", etc.)

// Exemple avec nom de mois abrégé :
const optionsShort = { month: 'short' };
const formatterShort = new Intl.DateTimeFormat('default', optionsShort);
const shortMonthName = formatterShort.format(date);
console.log(shortMonthName); // Sortie : (par exemple, "oct", "nov", etc.)

Bien que plus verbeuse, cette approche offre une plus grande flexibilité. La création d’un objet DateTimeFormat une fois et sa réutilisation améliore l’efficacité pour plusieurs dates.

Création d’une fonction personnalisée

Bien que moins efficace et dépourvue de localisation automatique, une fonction personnalisée démontre le mécanisme sous-jacent. Cette approche est généralement moins préférée que les méthodes intégrées.


const monthNames = ["janvier", "février", "mars", "avril", "mai", "juin",
  "juillet", "août", "septembre", "octobre", "novembre", "décembre"
];

function getMonthName(date) {
  return monthNames[date.getMonth()];
}

const date = new Date();
const monthName = getMonthName(date);
console.log(monthName); // Sortie : (par exemple, "octobre", "novembre", etc.)

Cette fonction utilise un tableau pour mapper les numéros de mois (0-11) à leurs noms. Notez que date.getMonth() renvoie un index commençant à zéro.

En résumé, toLocaleString() et Intl.DateTimeFormat sont recommandés pour leur localisation intégrée. La fonction personnalisée ne doit être utilisée que lorsque des exigences spécifiques et non standard existent.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *