Comment puis-je générer le nom du mois (par exemple: octobre / octobre) à partir de cet objet de date en JavaScript?
var objDate = new Date("10/11/2009");
Comment puis-je générer le nom du mois (par exemple: octobre / octobre) à partir de cet objet de date en JavaScript?
var objDate = new Date("10/11/2009");
Réponses:
Version plus courte:
Note (2019-03-08) - Cette réponse que j'ai écrite à l'origine en 2009 est obsolète. Voir la réponse de David Storey pour une meilleure solution.
la source
new Date()
retour,Tue Sep 06 2011 20:02:25 GMT+0200 (CEST)
ce qui signifie clairement que l'objet Date ait déjà tout cela défini en interne (noms de mois et de jours de la semaine), il ne soit pas public, nous devons donc tout taper à nouveau. :(String#split
avectoString
outoDateString
.Il est maintenant possible de le faire avec l'API d'internationalisation ECMAScript:
'long'
utilise le nom complet du mois,'short'
pour le nom court et'narrow'
pour une version plus minimale, comme la première lettre dans les langues alphabétiques.Vous pouvez changer les paramètres régionaux du navigateur
'default'
en ceux qui vous plaisent (par exemple'en-us'
), et il utilisera le bon nom pour cette langue / pays.Avec l'
toLocaleString
api, vous devez passer à chaque fois les paramètres régionaux et les options. Si vous allez utiliser les mêmes informations de paramètres régionaux et options de formatage à plusieurs dates différentes, vous pouvez utiliser à laIntl.DateTimeFormat
place:Pour plus d'informations, consultez mon article de blog sur l' API d'internationalisation .
la source
En voici une autre, avec prise en charge de la localisation :)
vous pouvez ensuite facilement ajouter la prise en charge d'autres langues:
la source
Date.locale
estundefined
. c'est une excellente réponse pour les autres implémentations JS!Si cela ne vous dérange pas d'étendre le prototype Date (et il y a de bonnes raisons de ne pas vouloir le faire), vous pouvez en fait trouver une méthode très simple:
Ces fonctions s'appliqueront alors à tous les objets Date javascript.
la source
Je recommande chaleureusement la
format
fonction de la bibliothèque moment.js , que vous pouvez utiliser comme ceci:Utilisez "MMMM" au lieu de "MMM" si vous avez besoin du nom complet du mois
En plus d'une longue liste d'autres fonctionnalités, il bénéficie d'un solide soutien à l'internationalisation .
la source
Luxon
etdate-fns
, mais là encore, il existe un large support de navigateur pour l'API d'internationalisation de nos jours .Il peut être utilisé comme
la source
Un processus simple courant à partir d'un objet date peut être effectué par cela.
Ou vous pouvez faire un prototype de date comme
Ex:
var dateFormat3 = new Date().getMonthName();
# March
var dateFormat4 = new Date().getFormatDate();
# 16 March, 2017
la source
Vous pouvez utiliser datejs pour ce faire. Vérifiez les FormatSpecifiers , MMMM vous donne le nom du mois:
Et datejs l'a localisé pour plus de 150 locales! Vois ici
la source
Essayer:
la source
Voici un moyen qui ne dépend pas d'un tableau codé en dur et prend en charge plusieurs paramètres régionaux.
Si vous avez besoin d'un tableau complet:
Usage:
Si vous n'avez besoin que d'un mois sélectionné (plus rapide):
Usage:
Testé et fonctionne très bien sur Chrome et IE 11. Sur mozilla, certaines modifications sont nécessaires, car il renvoie la date entière.
la source
toLocaleString
Malheureusement, la meilleure façon d'extraire le nom du mois est à partir de la représentation UTCString:
la source
Au lieu de déclarer un tableau qui contient tout le nom du mois, puis de pointer avec un index, nous pouvons également l'écrire dans une version plus courte comme ci-dessous:
la source
MAY 1, 2015 AT 12:00:00 AM GMT-4
(lors de l'utilisation des{ month: "long" }
paramètres)new Date().toLocaleString(navigator.language, { month: "short" })
la source
Le format naturel de nos jours est d'utiliser Moment.js.
La façon d'obtenir le mois sous forme de chaîne est très simple dans Moment.js pas besoin de coder en dur les noms de mois dans votre code: Pour obtenir le mois et l'année en cours au format de nom de mois et l'année complète (mai 2015):
la source
Luxon
etdate-fns
, mais là encore, il existe aujourd'hui un large support de navigateur pour l'API d'internationalisation .Une autre façon de formater la date
la source
Vous pouvez utiliser l'un des nombreux formats de date disponibles. Étant donné que cela relève de la spécification JavaScript, il sera disponible à la fois en mode navigateur et côté serveur.
par exemple
Il y en a plus sur https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
la source
Si vous ne souhaitez pas utiliser une bibliothèque externe, ou stocker un tableau de noms de mois, ou si l'API d'internationalisation ECMAScript n'est pas assez bonne en raison de la compatibilité du navigateur, vous pouvez toujours le faire à l'ancienne en extrayant les informations de la sortie de date:
Cela vous donnerait le nom abrégé du mois, par exemple octobre. Je pense que la date viendra dans toutes sortes de formats en fonction de l'initialisation et de vos paramètres régionaux, alors regardez ce qui
toDateString()
retourne et recalculez vossubstring()
valeurs en fonction de cela.la source
Si vous utilisez jQuery, vous utilisez probablement aussi jQuery UI, ce qui signifie que vous pouvez utiliser $ .datepicker.formatDate () .
la source
Ma meilleure solution est la suivante:
la source
Avec momentjs , utilisez simplement la notation de format .
la source
moment
c'est une très grande bibliothèque, et beaucoup trop pour cela. Les alternatives modernes incluentLuxon
etdate-fns
, mais là encore, il existe aujourd'hui un large support de navigateur pour l'API d'internationalisation .Cela peut également être fait si vous utilisez le kendo.
Voici la liste des formateurs du site de kendo :
la source
Vous pouvez simplement utiliser Date.toLocaleDateString () et analyser la date souhaitée comme paramètre
Vous pouvez trouver plus d'informations dans la documentation de Firefox
la source
Si vous ne souhaitez pas utiliser le moment et souhaitez afficher le nom du mois -
la source
Pour moi, c'est la meilleure solution,
pour TypeScript également
La sortie est
la source
Stockez les noms dans un tableau et recherchez l'index du mois.
JavaScript getMonth (), méthode
la source
var month = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
? Bien plus court que de les ajouter individuellement ...J'ai une solution partielle que j'ai trouvée. Il utilise une expression régulière pour extraire le nom du mois et du jour. Mais en parcourant les options Région et Langue (Windows), je me rends compte que différentes cultures ont un ordre de format différent ... peut-être qu'un meilleur modèle d'expression régulière pourrait être utile.
la source
En étendant simplement les nombreuses autres excellentes réponses - si vous utilisez jQuery - vous pouvez simplement faire quelque chose comme
où
date
est égal auvar d = new Date(somevalue)
. Le principal avantage de ceci est par @nickf dit d'éviter le namespace global.la source
Pour obtenir un tableau de nom de mois:
http://jsfiddle.net/polinux/qb346/
la source
Écrivez simplement un simple wrapper
toLocaleString
:la source
Un hack rapide que j'ai utilisé et qui fonctionne bien:
la source