Start · Sprachen · JavaScript · Referenz · Date.prototype.getFullYear()

Date.prototype.getFullYear()

Methode

Gibt das Jahr eines <code>Date</code>-Objekts als vollständige Zahl (z. B. <code>2024</code>) entsprechend der lokalen Zeitzone zurück.

seit JavaScript ES1 (ECMAScript 1) · Baseline: alle Browser Kategorie: method-property

Signatur

Date.prototype.getFullYear()

Beschreibung

Die Methode getFullYear() liefert das Jahr eines Date-Objekts als vollständige Jahreszahl, also z. B. 2024 statt 124 oder 24. Die Berechnung erfolgt in der lokalen Zeitzone der Laufzeitumgebung (Browser bzw. Betriebssystem oder in Node.js die Umgebungsvariable TZ).

Typische Einsatzgebiete sind die Anzeige des aktuellen Jahres (etwa im Copyright-Hinweis einer Webseite), Altersberechnungen, Schaltjahrprüfungen oder das Gruppieren von Datensätzen nach Jahr. Für Zeitberechnungen, die unabhängig vom Standort des Nutzers sein sollen, ist stattdessen getUTCFullYear() die richtige Wahl.

getFullYear() ist der moderne Ersatz für die veraltete Methode getYear(), die je nach Implementierung zweistellige oder um 1900 verschobene Werte zurückgibt und nicht mehr verwendet werden sollte.

Rückgabewert

Typ
number
Beschreibung
Eine ganze Zahl mit dem Jahr des Datums in lokaler Zeit (auch negative Jahre bzw. Jahre vor 1000 werden korrekt als Zahl geliefert, z. B. -44 oder 800). Ist das Datum ungültig (Invalid Date), wird NaN zurückgegeben.

Beispiele

Aktuelles Jahr im Copyright-Hinweis

const jahr = new Date().getFullYear();
const footer = `© 2015–${jahr} programmierung.net`;
console.log(footer);
© 2015–2024 programmierung.net (abhängig vom aktuellen Jahr)

Alter aus einem Geburtsdatum berechnen

const berechneAlter = (geburtsdatum, stichtag = new Date()) => {
  let alter = stichtag.getFullYear() - geburtsdatum.getFullYear();
  // Geburtstag in diesem Jahr noch nicht erreicht?
  const nochNichtGehabt =
    stichtag.getMonth() < geburtsdatum.getMonth() ||
    (stichtag.getMonth() === geburtsdatum.getMonth() &&
      stichtag.getDate() < geburtsdatum.getDate());
  if (nochNichtGehabt) alter--;
  return alter;
};

console.log(berechneAlter(new Date(1990, 5, 15), new Date(2024, 2, 1)));
33

Schaltjahr prüfen und Datensätze nach Jahr gruppieren

const istSchaltjahr = (datum) => {
  const j = datum.getFullYear();
  return (j % 4 === 0 && j % 100 !== 0) || j % 400 === 0;
};

console.log(istSchaltjahr(new Date(2024, 0, 1))); // true
console.log(istSchaltjahr(new Date(1900, 0, 1))); // false

const bestellungen = [
  { id: 1, datum: new Date(2023, 10, 3) },
  { id: 2, datum: new Date(2024, 1, 29) },
  { id: 3, datum: new Date(2024, 6, 12) }
];

const proJahr = Object.groupBy(bestellungen, (b) => b.datum.getFullYear());
console.log(Object.keys(proJahr));
true false [ '2023', '2024' ]

Lokale Zeit vs. UTC und ungültige Daten

// Silvester 23:30 Uhr UTC – in Berlin (UTC+1) bereits Neujahr
const d = new Date('2023-12-31T23:30:00Z');
console.log(d.getFullYear());    // in Europe/Berlin: 2024
console.log(d.getUTCFullYear()); // 2023

const kaputt = new Date('kein Datum');
console.log(kaputt.getFullYear());
2024 2023 NaN

// Wichtig · Fallstricke

  • Zeitzone beachten: Das Ergebnis hängt von der lokalen Zeitzone ab. Rund um den Jahreswechsel kann getFullYear() für denselben Zeitpunkt je nach Standort unterschiedliche Jahre liefern. Für serverseitige oder standortunabhängige Logik getUTCFullYear() verwenden.
  • Nicht getYear() verwenden: Die veraltete Methode liefert z. B. 124 für 2024 (Jahr minus 1900) und ist aus Kompatibilitätsgründen nur noch in Anhang B der Spezifikation enthalten.
  • Ungültige Daten: Bei Invalid Date ist das Ergebnis NaN – vor der Weiterverarbeitung ggf. mit Number.isNaN() prüfen.
  • Zweistellige Jahre im Konstruktor: new Date(24, 0, 1) ergibt das Jahr 1924, nicht 2024. Zum Setzen von Jahren 0–99 setFullYear() verwenden.
  • Object.groupBy() im Beispiel ist ES2024; in älteren Umgebungen auf reduce() ausweichen. getFullYear() selbst wird von allen Browsern und Node.js unterstützt.