Date.prototype.setHours()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die setHours()-Methode von Date Instanzen verändert die Stunden, Minuten, Sekunden und/oder Millisekunden dieses Datums gemäß der lokalen Zeit.

Probieren Sie es aus

const event = new Date("August 19, 1975 23:15:30");
event.setHours(20);

console.log(event);
// Expected output: "Tue Aug 19 1975 20:15:30 GMT+0200 (CEST)"
// Note: your timezone may vary

event.setHours(20, 21, 22);

console.log(event);
// Expected output: "Tue Aug 19 1975 20:21:22 GMT+0200 (CEST)"

Syntax

js
setHours(hoursValue)
setHours(hoursValue, minutesValue)
setHours(hoursValue, minutesValue, secondsValue)
setHours(hoursValue, minutesValue, secondsValue, msValue)

Parameter

hoursValue

Eine ganze Zahl zwischen 0 und 23, die die Stunden repräsentiert.

minutesValue Optional

Eine ganze Zahl zwischen 0 und 59, die die Minuten repräsentiert.

secondsValue Optional

Eine ganze Zahl zwischen 0 und 59, die die Sekunden repräsentiert. Wenn Sie secondsValue angeben, müssen Sie auch minutesValue angeben.

msValue Optional

Eine ganze Zahl zwischen 0 und 999, die die Millisekunden repräsentiert. Wenn Sie msValue angeben, müssen Sie auch minutesValue und secondsValue angeben.

Rückgabewert

Verändert das Date-Objekt direkt und gibt dessen neuen Zeitstempel zurück. Wenn ein Parameter NaN ist (oder andere Werte, die zu NaN konvertiert werden, wie undefined), wird das Datum auf Invalid Date gesetzt und NaN wird zurückgegeben.

Beschreibung

Wenn Sie die Parameter minutesValue, secondsValue und msValue nicht angeben, werden die gleichen Werte verwendet, wie sie von getMinutes(), getSeconds() und getMilliseconds() zurückgegeben werden.

Wenn ein von Ihnen angegebener Parameter außerhalb des erwarteten Bereichs liegt, werden andere Parameter und die Datumsinformation im Date-Objekt entsprechend aktualisiert. Wenn Sie zum Beispiel 100 für secondsValue angeben, werden die Minuten um 1 erhöht (minutesValue + 1) und 40 wird für Sekunden verwendet.

Da setHours() auf der lokalen Zeit basiert, kann das Überqueren einer Sommerzeitgrenze (DST) zu einer anderen vergangenen Zeit führen, als erwartet. Zum Beispiel, wenn durch das Setzen der Stunden eine Vorwärtsumstellung im Frühjahr überschritten wird (eine Stunde verloren geht), ist der Zeitunterschied zwischen dem neuen und dem alten Datum eine Stunde weniger als der nominale Stundendifferenz. Im Gegensatz dazu führt das Überschreiten einer Rückfallumstellung (eine Stunde gewonnen) zu einer zusätzlichen Stunde. Wenn Sie das Datum um eine feste Zeitmenge anpassen müssen, erwägen Sie die Verwendung von setUTCHours() oder setTime().

Wenn die neue lokale Zeit innerhalb eines Versatzübergangs fällt, wird die genaue Zeit mit dem gleichen Verhalten wie die Temporal's disambiguation: "compatible" Option abgeleitet. Das heißt, wenn die lokale Zeit zwei Instanzen entspricht, wird die frühere gewählt; wenn die lokale Zeit nicht existiert (es gibt eine Lücke), gehen wir um die Lückendauer vorwärts.

Beispiele

Verwendung von setHours()

js
const theBigDay = new Date();
theBigDay.setHours(7);

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-date.prototype.sethours

Browser-Kompatibilität

Siehe auch