Die Methode Date.prototype.getMonth() gibt den Monat eines Date-Objekts in der lokalen Zeitzone zurück. Das wichtigste Merkmal dieser Methode ist die 0-basierte Indexierung: Januar entspricht dem Wert 0, Dezember dem Wert 11. Diese Konvention ist eine der bekanntesten Stolperfallen der JavaScript-Date-API und führt regelmäßig zu Off-by-One-Fehlern. In Code-Reviews lohnt es sich, jede Verwendung von getMonth() und setMonth() gezielt zu prüfen.

Funktionsweise

getMonth() liefert eine Ganzzahl von 0 bis 11. Die Zuordnung lautet:

WertMonat (DE)Monat (EN)
0JanuarJanuary
1FebruarFebruary
2MärzMarch
3AprilApril
4MaiMay
5JuniJune
6JuliJuly
7AugustAugust
8SeptemberSeptember
9OktoberOctober
10NovemberNovember
11DezemberDecember

Um auf einen menschenlesbaren Monat (1–12) zu kommen, muss + 1 addiert werden – ein klassisches Muster bei der Datumsformatierung.

Syntax

JavaScript Syntax
date.getMonth()

Die Methode erwartet keine Parameter.

Rückgabewert

Eine Ganzzahl zwischen 0 und 11, die den 0-basierten Monatsindex in der lokalen Zeitzone repräsentiert. Bei einem ungültigen Datum wird NaN zurückgegeben.

Beispiele

Monatsindex auslesen

JavaScript Beispiel
const date = new Date("2026-05-01");
console.log(date.getMonth());
Output
4

Mai entspricht dem Index 4, da die Zählung bei 0 (Januar) beginnt.

Monatsname per Mapping

JavaScript Beispiel
const monate = ["Januar", "Februar", "März", "April", "Mai", "Juni",
                "Juli", "August", "September", "Oktober", "November", "Dezember"];

function deutscherMonat(date) {
    return monate[date.getMonth()];
}

console.log(deutscherMonat(new Date("2026-05-01")));
console.log(deutscherMonat(new Date("2026-12-24")));
Output
Mai
Dezember

Datum als DD.MM.YYYY formatieren

JavaScript Beispiel
function formatDeutsch(date) {
    const dd = String(date.getDate()).padStart(2, "0");
    const mm = String(date.getMonth() + 1).padStart(2, "0");
    const yyyy = date.getFullYear();
    return `${dd}.${mm}.${yyyy}`;
}

console.log(formatDeutsch(new Date("2026-05-01")));
Output
01.05.2026

Quartal aus dem Monat ableiten

Das Quartal lässt sich elegant aus dem 0-basierten Monatsindex berechnen.

JavaScript Beispiel
function quartal(date) {
    return Math.floor(date.getMonth() / 3) + 1;
}

console.log(quartal(new Date("2026-02-15"))); // Februar
console.log(quartal(new Date("2026-05-01"))); // Mai
console.log(quartal(new Date("2026-08-30"))); // August
console.log(quartal(new Date("2026-12-24"))); // Dezember
Output
1
2
3
4

Saison-Zuordnung (meteorologisch)

JavaScript Beispiel
function jahreszeit(date) {
    const m = date.getMonth();
    if (m >= 2 && m <= 4) return "Frühling";
    if (m >= 5 && m <= 7) return "Sommer";
    if (m >= 8 && m <= 10) return "Herbst";
    return "Winter";
}

console.log(jahreszeit(new Date("2026-05-01")));
console.log(jahreszeit(new Date("2026-12-21")));
Output
Frühling
Winter

Hinweise & verwandte Methoden

  • Die 0-basierte Zählung gilt nicht für getDate() (Tag des Monats) – dort ist die Zählung 1-basiert. Diese Inkonsistenz innerhalb derselben API ist eine wesentliche Fehlerquelle.
  • Zum Setzen des Monats: Date.prototype.setMonth(). Werte über 11 oder unter 0 führen zu einem Jahresüberlauf.
  • Für eine zeitzonenunabhängige Variante: Date.prototype.getUTCMonth().
  • Für lokalisierte Monatsnamen ohne manuelles Mapping: Intl.DateTimeFormat mit der Option { month: "long" } oder { month: "short" }.
/ Weiter

Zurück zu Date

Zur Übersicht