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
NaNzurü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
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.
const date = new Date("2026-05-01T10:00:00");
console.log(date.getDate());1Letzter 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.
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);29 28 30Datum als DD.MM.YYYY formatieren
In Kombination mit getMonth() und getFullYear() lässt sich ein Datum im deutschen Format ausgeben.
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")));01.05.2026Tage zwischen zwei Daten zählen
In Verbindung mit setDate() lassen sich auch Tage iterieren – etwa, um alle Werktage eines Monats zu listen.
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);[ 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.
const invalid = new Date("kein Datum");
console.log(invalid.getDate());
console.log(Number.isNaN(invalid.getTime()));NaN
trueHinweise & 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.DateTimeFormatoderDate.prototype.toLocaleDateString()meist die bessere Wahl als manuelle Formatierung.