Zurück zum Blog
3 min read

So berechnen Sie das Alter in JavaScript (Geburtsdatum in Jahre, Monate, Tage)

Erfahren Sie praktische Möglichkeiten zur Berechnung des Alters anhand eines Geburtsdatums in JavaScript. Beinhaltet genaue Jahre, Monate, Tage, eine Standdatumsoption und häufige Fallstricke wie Zeitzonen und Schaltjahre.

So berechnen Sie das Alter in JavaScript (Geburtsdatum in Jahre, Monate, Tage)

Wenn Sie das Alter einer Person anhand des Geburtsdatums (DOB) in JavaScript berechnen müssen, können Sie dies auf verschiedene Arten tun. Der Schlüssel liegt darin, zu entscheiden, was Sie unter Alter verstehen:

  • Alter in abgeschlossenen Jahren (am häufigsten)
  • Genaues Alter (Jahre, Monate, Tage)
  • Alter an einem bestimmten Datum (nicht immer heute)

1) Alter in vollendeten Jahren berechnen (einfach und korrekt)

Dies ist der Standardansatz: Jahre abziehen und anpassen, wenn der Geburtstag dieses Jahr noch nicht stattgefunden hat.

function ageInYears(dob, asOf = new Date()) {
  const Geburt = neues Datum(Geburtsdatum);
  const ref = neues Datum(asOf);

  let years = ref.getFullYear() -birth.getFullYear();
  const m = ref.getMonth() -birth.getMonth();

  if (m < 0 || (m === 0 && ref.getDate() 

Beispiel: Geburtsdatum 10.02.2000 und Stand 09.02.2026 ergibt 25 (Geburtstag morgen).

2) Berechnen Sie das genaue Alter (Jahre, Monate, Tage)

Wenn Sie eine genaue Aufschlüsselung wünschen, können Sie zuerst die Jahre, dann die Monate und dann die Tage berechnen, indem Sie bei Bedarf etwas vom Vormonat „ausleihen“.

function precisionAge(dob, asOf = new Date()) {
  const Geburt = neues Datum(Geburtsdatum);
  const ref = neues Datum(asOf);

  let years = ref.getFullYear() -birth.getFullYear();
  letmonths = ref.getMonth() -birth.getMonth();
  let days = ref.getDate() -birth.getDate();

  // Passen Sie die Tage an, indem Sie sie vom Vormonat übernehmen
  if (Tage < 0) {
    const prevMonth = new Date(ref.getFullYear(), ref.getMonth(), 0); // Tag 0 = letzter Tag des Vormonats
    Tage += prevMonth.getDate();
    Monate--;
  }

  // Passen Sie die Monate an, indem Sie Anleihen aus dem Vorjahr übernehmen
  if (Monate < 0) {
    Monate += 12;
    Jahre--;
  }

  return { Jahre, Monate, Tage };
}

Hinweis: Randfälle mit Datum des Monats (wie ein Geburtsdatum am 31.) erfordern sorgfältige Tests. Wenn Sie etwas Robustes für alle Gebietsschemata und Randfälle benötigen, sollten Sie die Verwendung einer gut getesteten Datumsbibliothek in Betracht ziehen.

3) Verwenden Sie ein „Standdatum“ für das Alter an einem vergangenen oder zukünftigen Datum

Viele Apps benötigen ein Alter zu einem bestimmten Referenzdatum (Versicherung, Teilnahmebedingungen, Schuljahresfristen). Beide oben genannten Funktionen akzeptieren einen asOf-Parameter, sodass Sie Folgendes tun können:

ageInYears('1995-06-20', '2030-01-01');
ExactAge('1995-06-20', '2030-01-01');

Häufige Fallstricke (und wie man sie vermeidet)

  • Zeitzonen: Das Parsen von JJJJ-MM-TT kann sich in verschiedenen Umgebungen unterschiedlich verhalten. Wenn Ihnen nur das Datum wichtig ist, erstellen Sie das Datum in der Ortszeit: new Date(year,monthIndex, day).
  • Geburtstage an Schalttagen: Legen Sie Ihre Regel für den 29. Februar in Nicht-Schaltjahren (28. Februar oder 1. März) fest. Seien Sie konsequent.
  • Ungültige Eingaben: bestätigen, dass das Geburtsdatum ein echtes Datum ist und nicht in der Zukunft liegt.

Schnelle Option: Verwenden Sie den Online-Altersrechner

Wenn SieWenn Sie nur die Antwort benötigen (oder Ihre Implementierung validieren möchten), nutzen Sie unseren kostenlosen Rechner: Alter online berechnen.

Verwandte Leitfäden

FAQ

Wie lässt sich das Alter am genauesten berechnen?

In den meisten Fällen ist „abgeschlossene Jahre“ (Alter in ganzen Jahren) der Standard. Wenn Sie eine vollständige Aufschlüsselung benötigen, berechnen Sie zuerst die Jahre, dann die Monate und dann die Tage und testen Sie Grenzfälle wie Monatslänge und Schaltjahre.

Warum gibt JavaScript manchmal den falschen Tag für eine Datumszeichenfolge an?

Weil neues Datum('JJJJ-MM-TT') in einigen Umgebungen als UTC interpretiert werden kann. Wenn Ihnen das lokale Kalenderdatum wichtig ist, analysieren Sie die Teile und verwenden Sie neues Datum(j, m, t).