Die Methode Date.prototype.setFullYear() setzt das vierstellige Jahr eines Date-Objekts in der lokalen Zeitzone. Optional können auch Monat und Tag in einem einzigen Aufruf angepasst werden – das macht sie zur kompaktesten Möglichkeit, ein Date-Objekt auf ein bestimmtes Kalenderdatum zu schieben. Sie ist der moderne Ersatz für die unsichere setYear()-Methode, die Jahre relativ zu 1900 erwartete und damit Y2K-typische Bugs erzeugte.

Funktionsweise

Im Gegensatz zur veralteten setYear() erwartet setFullYear() immer eine vierstellige Jahreszahl. Die optionalen Parameter monthValue und dateValue ermöglichen es, in einem Aufruf bis zu drei Komponenten gleichzeitig zu ändern – effizient und atomar.

Wichtige Eigenschaften:

  • Mutierend: Das Date-Objekt wird direkt verändert. Für eine Kopie zuvor klonen.
  • Überlauf: Werte außerhalb gültiger Bereiche bei monthValue (z. B. 12) oder dateValue (z. B. 32) werden automatisch normalisiert.
  • Veraltete setYear(): Niemals mehr verwenden.

Syntax

JavaScript Syntax
date.setFullYear(yearValue)
date.setFullYear(yearValue, monthValue)
date.setFullYear(yearValue, monthValue, dateValue)
Parameter
yearValue

Eine Ganzzahl, die das neue Jahr repräsentiert (vierstellig).

monthValue

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

dateValue

(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. Bei ungültigen Werten wird NaN zurückgegeben.

Beispiele

Nur das Jahr ändern

JavaScript Beispiel
const date = new Date("2026-05-01");
date.setFullYear(2030);
console.log(date.toISOString().slice(0, 10));
Output
2030-05-01

Jahr, Monat und Tag in einem Aufruf

JavaScript Beispiel
const date = new Date();
date.setFullYear(2026, 11, 24);
console.log(date.toISOString().slice(0, 10));
Output
2026-12-24

Jahresende auf 31.12. setzen

JavaScript Beispiel
function setzeJahresende(date) {
    const result = new Date(date);
    result.setFullYear(result.getFullYear(), 11, 31);
    return result;
}

console.log(setzeJahresende(new Date("2026-05-15")).toISOString().slice(0, 10));
Output
2026-12-31

Vorsicht beim Schaltjahr

Wird ein 29. Februar in ein Nicht-Schaltjahr gesetzt, normalisiert JavaScript das Datum automatisch auf den 1. März.

JavaScript Beispiel
const date = new Date("2024-02-29");
date.setFullYear(2026);
console.log(date.toISOString().slice(0, 10));
Output
2026-03-01

Geburtstagslogik

JavaScript Beispiel
function naechsterGeburtstag(geburt, heute) {
    const result = new Date(geburt);
    result.setFullYear(heute.getFullYear());
    if (result < heute) result.setFullYear(result.getFullYear() + 1);
    return result;
}

console.log(naechsterGeburtstag(new Date("1990-07-15"), new Date("2026-05-01"))
    .toISOString().slice(0, 10));
Output
2026-07-15

Hinweise & verwandte Methoden

  • Für die UTC-Variante: Date.prototype.setUTCFullYear().
  • Niemals die veraltete Methode setYear() verwenden – sie liefert für zweistellige Werte kein verlässliches Ergebnis.
  • Beim 29. Februar in Schaltjahren ist Vorsicht geboten: ein Wechsel in ein Nicht-Schaltjahr verschiebt das Datum auf den 1. März.
  • setFullYear() mutiert das Original – wer eine Kopie braucht, sollte zuerst klonen.
/ Weiter

Zurück zu Date

Zur Übersicht