Wie kann ich den Namen des Monats (z.B.: Oct/October) aus diesem Datumsobjekt in JavaScript generieren?
var objDate = new Date("10/11/2009");
Wie kann ich den Namen des Monats (z.B.: Oct/October) aus diesem Datumsobjekt in JavaScript generieren?
var objDate = new Date("10/11/2009");
Dies ist jetzt mit der ECMAScript Internationalization API möglich:
const date = new Date(2009, 10, 10); // 2009-11-10
const month = date.toLocaleString('default', { month: 'long' });
console.log(month);
'long'
verwendet den vollständigen Namen des Monats, 'short'
für den Kurznamen, und 'narrow'
für eine minimalere Version, z. B. den ersten Buchstaben in alphabetischen Sprachen.
Sie können das Gebietsschema in den Browsereinstellungen ändern 'default'
nach Belieben (z. B. 'en-us'
), und es wird der richtige Name für diese Sprache/dieses Land verwendet.
Mit toLocaleString
api müssen Sie das Gebietsschema und die Optionen jedes Mal neu eingeben. Wenn Sie dieselben Gebietsschema-Informationen und Formatierungsoptionen für mehrere verschiedene Daten verwenden wollen, können Sie Intl.DateTimeFormat
stattdessen:
const formatter = new Intl.DateTimeFormat('fr', { month: 'short' });
const month1 = formatter.format(new Date());
const month2 = formatter.format(new Date(2003, 5, 12));
console.log(`${month1} and ${month2}`); // current month in French and "juin".
Weitere Informationen finden Sie in meinem Blogbeitrag über die Internationalisierungs-API .
Kürzere Version:
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()]);
Hinweis (2019-03-08) - Diese Antwort von mir, die ich ursprünglich im Jahr 2009 geschrieben habe, ist veraltet. Siehe David Storey's Antwort für eine bessere Lösung.
Hier ist eine weitere, mit Unterstützung für die Lokalisierung :)
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']
}
};
können Sie ganz einfach die Unterstützung für andere Sprachen hinzufügen:
Date.locale.fr = {month_names: [...]};
Ich empfehle von Herzen die format
Funktion aus, die moment.js Bibliothek, die Sie wie folgt verwenden können:
moment().format("MMM"); // "Apr" - 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
Verwenden Sie "MMMM" anstelle von "MMM", wenn Sie den vollständigen Namen des Monats benötigen.
Zusätzlich zu einer langen Liste anderer Funktionen verfügt es über starke Unterstützung der Internationalisierung .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
8 Stimmen
Es wäre schön, wenn stackoverflow.com/a/18648314/5846045 könnte akzeptiert werden, um künftigen Lesern eine bessere Antwort zu geben