1039 Stimmen

Monatsname aus Datum abrufen

Wie kann ich den Namen des Monats (z.B.: Oct/October) aus diesem Datumsobjekt in JavaScript generieren?

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

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

1539voto

David Storey Punkte 26260

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 .

1476voto

Jesper Punkte 193903

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.

174voto

krcko Punkte 2776

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: [...]};

88voto

KARTHIKEYAN.A Punkte 14230

Wenn wir unsere Eingabe übergeben müssen, müssen wir wie folgt vorgehen

Eingang: '2020-12-28'

Code :

new Date('2020-12-28').toLocaleString('en-us',{month:'short', year:'numeric'})

Ausgabe: "Dezember 2020"

77voto

Brian M. Hunt Punkte 75888

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.com

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.

Powered by:

X