Die Methode Date.prototype.getDate() gehört zu den grundlegendsten Instanz-Methoden des Date-Objekts. Sie liefert den Tag des Monats eines Date-Objekts gemäß der lokalen Zeitzone des ausführenden Systems zurück. Der Rückgabewert ist eine Ganzzahl zwischen 1 und 31 und entspricht damit der intuitiven, kalendarischen Tagesangabe – im Gegensatz zu getMonth(), das einen 0-basierten Index verwendet. Diese Methode ist ein zentraler Baustein für die Formatierung von Datumsausgaben, das Bauen von Kalender-Komponenten und für Datumsarithmetik wie das Berechnen von Differenzen zwischen Tagen.

Funktionsweise

getDate() operiert auf einer konkreten Date-Instanz und liefert den Tag des Monats in der lokalen Zeitzone des ausführenden Systems. Dabei gilt:

  • Gültiges Datum: Rückgabe einer Ganzzahl von 1 bis 31, abhängig vom Monat (z. B. 1–28/29 im Februar, 1–30 im April, 1–31 im Mai).
  • Ungültiges Datum: Liefert NaN zurück, falls das zugrundeliegende Date-Objekt nicht parst werden konnte.
  • Lokale Zeitzone: Der Rückgabewert hängt von der Systemzeitzone ab. Für eine zeitzonenunabhängige Variante steht getUTCDate() bereit.

Im Gegensatz zu getMonth() ist die Tagesangabe nicht 0-basiert – der erste Tag eines Monats ist also tatsächlich 1, nicht 0. Diese Inkonsistenz innerhalb der Date-API ist eine häufige Fehlerquelle und sollte beim Lesen und Schreiben von Datumslogik bewusst beachtet werden.

Syntax

JavaScript Syntax
date.getDate()

Die Methode erwartet keine Parameter. Sie wird direkt auf einer Date-Instanz aufgerufen.

Rückgabewert

Eine Ganzzahl zwischen 1 und 31, die den Tag des Monats in der lokalen Zeitzone repräsentiert. Bei einem ungültigen Date-Objekt (z. B. erzeugt aus einem nicht parsbaren String) wird NaN zurückgegeben.

Beispiele

Aktuellen Tag des Monats auslesen

Der häufigste Anwendungsfall: den Tag eines bekannten Date-Objekts auslesen.

JavaScript Beispiel
const date = new Date("2026-05-01T10:00:00");
console.log(date.getDate());
Output
1

Letzter Tag eines Monats berechnen

Mit dem Trick, den Tag 0 des Folgemonats zu setzen, lässt sich der letzte Tag des aktuellen Monats ermitteln. JavaScript normalisiert den Wert intern und liefert so dynamisch das korrekte Monatsende – einschließlich der Schaltjahr-Logik für Februar.

JavaScript Beispiel
const februar2024 = new Date(2024, 2, 0).getDate(); // Schaltjahr
const februar2026 = new Date(2026, 2, 0).getDate(); // Kein Schaltjahr
const april = new Date(2026, 4, 0).getDate();

console.log(februar2024, februar2026, april);
Output
29 28 30

Datum als DD.MM.YYYY formatieren

In Kombination mit getMonth() und getFullYear() lässt sich ein Datum im deutschen Format ausgeben.

JavaScript Beispiel
function formatDate(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(formatDate(new Date("2026-05-01")));
Output
01.05.2026

Tage zwischen zwei Daten zählen

In Verbindung mit setDate() lassen sich auch Tage iterieren – etwa, um alle Werktage eines Monats zu listen.

JavaScript Beispiel
const start = new Date("2026-05-01");
const ende = new Date("2026-05-05");
const tage = [];

for (let d = new Date(start); d <= ende; d.setDate(d.getDate() + 1)) {
    tage.push(d.getDate());
}

console.log(tage);
Output
[ 1, 2, 3, 4, 5 ]

Ungültiges Datum

Wenn ein Date-Objekt aus einer ungültigen Eingabe erzeugt wurde, liefert getDate() keinen Fehler, sondern NaN. In produktivem Code sollte daher die Gültigkeit des Datums geprüft werden.

JavaScript Beispiel
const invalid = new Date("kein Datum");
console.log(invalid.getDate());
console.log(Number.isNaN(invalid.getTime()));
Output
NaN
true

Hinweise & verwandte Methoden

  • Für eine zeitzonenunabhängige Variante eignet sich Date.prototype.getUTCDate().
  • Soll der Wochentag statt des Monatstages ausgelesen werden, ist Date.prototype.getDay() zuständig.
  • Mit Date.prototype.setDate() lässt sich der Tag setzen – dabei wird ein Überlauf in den Folgemonat automatisch korrigiert.
  • Für lokalisierte Ausgaben (z. B. „1. Mai 2026”) ist Intl.DateTimeFormat oder Date.prototype.toLocaleDateString() meist die bessere Wahl als manuelle Formatierung.
/ Weiter

Zurück zu Date

Zur Übersicht