Die Methode Date.prototype.setUTCMonth() setzt den 0-basierten Monatsindex eines Date-Objekts in der koordinierten Weltzeit (UTC). Optional kann der Tag des Monats im selben Aufruf festgelegt werden. Werte außerhalb von 0–11 führen zu einem Jahresüberlauf in UTC. Wie bei setMonth() sind die Monate 0-basiert: Januar = 0, Dezember = 11. Beim Wechsel auf einen kürzeren Monat normalisiert JavaScript automatisch in den Folgemonat – eine bekannte Stolperfalle.

Funktionsweise

Werte außerhalb von 0–11 führen zu einem Jahresüberlauf in UTC:

  • setUTCMonth(13): +1 Jahr, Februar.
  • setUTCMonth(-1): -1 Jahr, Dezember.
  • setUTCMonth(11, 24): Dezember, 24. Tag.

Eine Stolperfalle, die auch hier gilt: Wenn das aktuelle Datum z. B. der 31. März ist und setUTCMonth(1) (Februar) gesetzt wird, normalisiert JavaScript zum 3. März – nicht zum 28. Februar.

Syntax

JavaScript Syntax
date.setUTCMonth(monthValue)
date.setUTCMonth(monthValue, dayValue)
Parameter
monthValue

Eine Ganzzahl von 0 (Januar) bis 11 (Dezember).

dayValue

(Optional) Eine Ganzzahl von 1 bis 31, die den Tag des Monats angibt.

Rückgabewert

Die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC nach der Aktualisierung.

Beispiele

UTC-Monat setzen

JavaScript Beispiel
const date = new Date("2026-05-01T12:00:00Z");
date.setUTCMonth(11);
console.log(date.toISOString().slice(0, 10));
Output
2026-12-01

Jahresüberlauf in UTC

JavaScript Beispiel
const date = new Date("2026-05-01T12:00:00Z");
date.setUTCMonth(13);
console.log(date.toISOString().slice(0, 10));
Output
2027-02-01

Monat und Tag in UTC zusammen setzen

JavaScript Beispiel
const date = new Date("2026-05-01T12:00:00Z");
date.setUTCMonth(11, 24);
console.log(date.toISOString().slice(0, 10));
Output
2026-12-24

Sichere Monatsnavigation

JavaScript Beispiel
function setzeMonatsanfangUTC(date, monthIndex) {
    const result = new Date(date);
    result.setUTCDate(1);
    result.setUTCMonth(monthIndex);
    return result;
}

console.log(setzeMonatsanfangUTC(new Date("2026-03-31T00:00:00Z"), 1).toISOString().slice(0, 10));
Output
2026-02-01

Hinweise & verwandte Methoden

  • Für die lokale Variante: Date.prototype.setMonth().
  • In Server-Anwendungen sollte konsequent setUTCMonth() verwendet werden.
  • Beim Wechsel von einem 31-Tage- in einen kürzeren Monat normalisiert JavaScript automatisch in den Folgemonat. Wer das vermeiden will, sollte zuerst setUTCDate(1) setzen.
  • Die 0-basierte Zählung ist auch hier ein Stolperstein.
  • Die Methode mutiert das Original.
/ Weiter

Zurück zu Date

Zur Übersicht