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
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 auchminutesValue
angeben. msValue
Optional-
Eine ganze Zahl zwischen 0 und 999, die die Millisekunden repräsentiert. Wenn Sie
msValue
angeben, müssen Sie auchminutesValue
undsecondsValue
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()
const theBigDay = new Date();
theBigDay.setHours(7);
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-date.prototype.sethours |