Question Obtenir le nom du mois à partir de la date


Comment puis-je générer le nom du mois (par exemple Oct / Octobre) à partir de cet objet de date dans JavaScript?

var objDate = new Date("10/11/2009");

481
2017-10-29 12:19


origine


Réponses:


Version plus courte:

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];

const d = new Date();
document.write("The current month is " + monthNames[d.getMonth()]);


863
2017-10-29 12:45



Il est maintenant possible de le faire avec l’API ECMAScript Internationalization:

var date = new Date("10/11/2009"),
    locale = "en-us",
    month = date.toLocaleString(locale, { month: "long" });

http://jsfiddle.net/dstorey/Xgerq/

"long" utilise le nom complet du mois, "short" pour le nom court et "étroit" pour une version plus minimale, telle que la première lettre dans les langues alphabétiques.

Vous pouvez modifier les paramètres régionaux selon vos préférences et utiliser le bon nom pour cette langue / ce pays.

Avec toLocaleString vous devez passer les paramètres régionaux et les options à chaque fois. Si vous envisagez d'utiliser les mêmes informations de paramètres régionaux et les mêmes options de mise en forme à différentes dates, vous pouvez utiliser Intl.DateTimeFormat au lieu:

var formatter = new Intl.DateTimeFormat("fr", { month: "short" }),
month1 = formatter.format(new Date()),
month2 = formatter.format(new Date(2003-05-12));

// sept. and déc.
console.log(month1 + " and " + month2);

Le principal problème avec cette API est qu'elle est nouvelle. Il est uniquement disponible dans les navigateurs Blink (Chrome et Opera), IE11, Microsoft Edge, Firefox 29+ et Safari 10+.

Pour plus d'informations, voir mon article sur le API d'internationalisation.


366
2017-09-06 01:08



En voici un autre, avec un support pour la localisation :)

Date.prototype.getMonthName = function(lang) {
    lang = lang && (lang in Date.locale) ? lang : 'en';
    return Date.locale[lang].month_names[this.getMonth()];
};

Date.prototype.getMonthNameShort = function(lang) {
    lang = lang && (lang in Date.locale) ? lang : 'en';
    return Date.locale[lang].month_names_short[this.getMonth()];
};

Date.locale = {
    en: {
       month_names: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
       month_names_short: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    }
};

vous pouvez alors facilement ajouter du support pour d'autres langues:

Date.locale.fr = {month_names: [...]};

154
2017-10-29 12:54



Si cela ne vous dérange pas d'étendre le prototype de date (et il y a de bonnes raisons de ne pas vouloir le faire), vous pouvez réellement trouver une méthode très simple:

Date.prototype.monthNames = [
    "January", "February", "March",
    "April", "May", "June",
    "July", "August", "September",
    "October", "November", "December"
];

Date.prototype.getMonthName = function() {
    return this.monthNames[this.getMonth()];
};
Date.prototype.getShortMonthName = function () {
    return this.getMonthName().substr(0, 3);
};

// usage:
var d = new Date();
alert(d.getMonthName());      // "October"
alert(d.getShortMonthName()); // "Oct"

Ces fonctions s'appliqueront ensuite à tout javascript Objets de date.


57
2017-10-29 12:52



Je recommande vivement le format fonction de, le moment.js bibliothèque, que vous pouvez utiliser comme ceci:

moment().format("MMM");  // "April" - current date
moment(new Date(2012, 01, 04)).format("MMM");  // "Feb" - from a local date
moment.utc(new Date(2012, 00, 04).format("MMM"); // "Jan" - from a UTC date

En plus d’une longue liste d’autres fonctionnalités, soutien à l'internationalisation.


50
2018-04-18 17:28



Pour obtenir le mois en cours sans saisir de date, utilisez ce code:

var dateToday = new Date();
var locale = "en-us";
var month = dateToday.toLocaleString(locale, {month: "long"});
alert(month);

45
2017-09-26 20:15



Date.prototype.getMonthName = function() {
    var monthNames = [ "January", "February", "March", "April", "May", "June", 
                       "July", "August", "September", "October", "November", "December" ];
    return monthNames[this.getMonth()];
}

Il peut être utilisé comme

var month_Name = new Date().getMonthName();

18
2018-06-12 12:05



Vous pourriez utiliser datejs pour faire ça. Vérifier la FormatSpecifiers, MMMM vous donne le nom du mois:

var objDate = new Date("10/11/2009");
document.write(objDate.toString("MMMM"));

Et datejs a localisé cela pour plus de 150 locales! Vois ici


17
2017-10-29 15:35



Un processus facile commun à partir de l'objet de date peut être fait par ceci.

var monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];
var monthShortNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
];

function dateFormat1(d){
  var t = new Date(d);
  return t.getDate()+' '+monthNames[t.getMonth()]+', '+t.getFullYear();
}

function dateFormat2(d){
  var t = new Date(d);
  return t.getDate()+' '+monthShortNames[t.getMonth()]+', '+t.getFullYear();
}

Ou vous pouvez faire un prototype de date comme

Date.prototype.getMonthName = function() {
    var monthNames = [ "January", "February", "March", "April", "May", "June", 
                       "July", "August", "September", "October", "November", "December" ];
    return monthNames[this.getMonth()];
}


Date.prototype.getFormatDate = function() {
    var monthNames = [ "January", "February", "March", "April", "May", "June", 
                       "July", "August", "September", "October", "November", "December" ];
    return this.getDate()+' '+monthNames[this.getMonth()]+', '+this.getFullYear();
}

Ex:

var dateFormat3 = new Date().getMonthName();  # March

var dateFormat4 = new Date().getFormatDate();  # 16 March, 2017


12
2017-11-15 05:21



Essayer:

var objDate = new Date("10/11/2009");

var strDate =
    objDate.toLocaleString("en", { day: "numeric" }) + ' ' +
    objDate.toLocaleString("en", { month: "long"  }) + ' ' +
    objDate.toLocaleString("en", { year: "numeric"});

10
2017-11-18 13:03