Die Methode Date.prototype.getDay() gibt den Wochentag eines Date-Objekts in der lokalen Zeitzone zurück. Im Gegensatz zu getDate(), das den Tag des Monats liefert, gibt getDay() einen 0-basierten Wochentagsindex zurück. Wichtig zu wissen: Die Zählung beginnt bei 0 für Sonntag – nicht für Montag, wie es in Deutschland kalendarisch üblich wäre. Diese amerikanische Konvention führt häufig zu Verwirrung und ist eine klassische Fehlerquelle bei der Internationalisierung von Datumslogik.

Funktionsweise

getDay() liest aus dem Date-Objekt den Wochentag aus und liefert eine Ganzzahl zwischen 0 und 6. Die Zuordnung lautet:

WertWochentag (DE)Wochentag (EN)
0SonntagSunday
1MontagMonday
2DienstagTuesday
3MittwochWednesday
4DonnerstagThursday
5FreitagFriday
6SamstagSaturday

Da die Zählung mit Sonntag beginnt, muss beim Mapping auf deutsche Wochentagsbezeichnungen oder bei der ISO-8601-konformen Wochentagslogik (Montag = 1, Sonntag = 7) entsprechend transformiert werden.

Syntax

JavaScript Syntax
date.getDay()

Die Methode erwartet keine Parameter.

Rückgabewert

Eine Ganzzahl zwischen 0 (Sonntag) und 6 (Samstag), die den Wochentag in der lokalen Zeitzone repräsentiert. Bei einem ungültigen Datum wird NaN zurückgegeben.

Beispiele

Wochentag eines Datums ermitteln

JavaScript Beispiel
const date = new Date("2026-05-01");
console.log(date.getDay());
Output
5

Der 1. Mai 2026 ist ein Freitag, daher der Rückgabewert 5.

Mapping auf deutsche Wochentagsnamen

JavaScript Beispiel
const tage = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];

function deutscherWochentag(date) {
    return tage[date.getDay()];
}

console.log(deutscherWochentag(new Date("2026-05-01")));
console.log(deutscherWochentag(new Date("2026-12-24")));
Output
Freitag
Donnerstag

Prüfen, ob ein Datum auf ein Wochenende fällt

Da Samstag (6) und Sonntag (0) die einzigen Wochenend-Werte sind, lässt sich eine Wochenend-Prüfung mit einer einzigen Bedingung formulieren.

JavaScript Beispiel
function isWeekend(date) {
    const day = date.getDay();
    return day === 0 || day === 6;
}

console.log(isWeekend(new Date("2026-05-01"))); // Freitag
console.log(isWeekend(new Date("2026-05-02"))); // Samstag
console.log(isWeekend(new Date("2026-05-03"))); // Sonntag
Output
false
true
true

Konvertierung in ISO-8601-Wochentag

Im internationalen Standard ISO 8601 beginnt die Woche mit Montag (1) und endet mit Sonntag (7). Diese Konvention wird in vielen europäischen Anwendungen erwartet.

JavaScript Beispiel
function isoWochentag(date) {
    const day = date.getDay();
    return day === 0 ? 7 : day;
}

console.log(isoWochentag(new Date("2026-05-03"))); // Sonntag
console.log(isoWochentag(new Date("2026-05-04"))); // Montag
Output
7
1

Nächsten Werktag finden

Eine typische Geschäftslogik: Wenn das angefragte Datum auf ein Wochenende fällt, soll auf den nächsten Werktag (Montag) gesprungen werden.

JavaScript Beispiel
function naechsterWerktag(date) {
    const result = new Date(date);
    while (result.getDay() === 0 || result.getDay() === 6) {
        result.setDate(result.getDate() + 1);
    }
    return result;
}

const samstag = new Date("2026-05-02");
console.log(naechsterWerktag(samstag).toISOString().slice(0, 10));
Output
2026-05-04

Hinweise & verwandte Methoden

  • Die Sonntag-zuerst-Konvention ist eine häufige Fehlerquelle. In Code-Reviews lohnt es sich, jede Verwendung von getDay() daraufhin zu prüfen.
  • Für lokalisierte Wochentagsnamen ohne manuelles Mapping eignet sich Intl.DateTimeFormat mit der Option { weekday: "long" }.
  • Die zeitzonenunabhängige Variante ist Date.prototype.getUTCDay().
  • Es gibt keinen Setter setDay() – um auf einen bestimmten Wochentag zu springen, muss mit setDate() und der Differenz zum aktuellen Wochentag gearbeitet werden.
/ Weiter

Zurück zu Date

Zur Übersicht