Die Methode Date.prototype.setTime() ersetzt den gesamten Zeitwert eines Date-Objekts durch einen neuen Zeitstempel in Millisekunden seit dem 1. Januar 1970 UTC. Sie ist die schnellste Möglichkeit, ein Date-Objekt komplett auf einen anderen Zeitpunkt umzustellen, ohne ein neues Objekt zu erzeugen. Im Vergleich zu spezialisierten Settern wie setHours() oder setDate() arbeitet setTime() auf der niedrigsten Abstraktionsebene und ist daher prädestiniert für das Klonen, das Verschieben um konstante Intervalle und das Zurücksetzen einer bestehenden Date-Variable.
Funktionsweise
setTime() überschreibt den internen Zeitstempel der Date-Instanz vollständig. Negative Werte sind erlaubt und repräsentieren Datumsangaben vor 1970. Die Methode ist die symmetrische Gegenstück-Operation zu getTime():
dateB.setTime(dateA.getTime())machtdateBstrukturell identisch zudateA(klonen).date.setTime(0)setzt das Datum auf den 1. Januar 1970, 00:00:00 UTC zurück.date.setTime(NaN)invalidiert das Date-Objekt.
Im Unterschied zu Methoden wie setHours() oder setDate() gibt es bei setTime() keine Normalisierung – der übergebene Wert ist direkt der neue interne Zustand.
Syntax
date.setTime(timeValue)timeValue Eine Zahl, die die Millisekunden seit dem 1. Januar 1970, 00:00:00 UTC angibt. Negative Werte sind möglich. NaN invalidiert das Date-Objekt.
Rückgabewert
Der gesetzte Zeitstempel als Zahl (timeValue).
Beispiele
Auf einen bekannten Zeitpunkt setzen
const date = new Date();
date.setTime(1777593600000);
console.log(date.toISOString());2026-05-01T00:00:00.000ZDate-Objekt klonen
const original = new Date("2026-05-01");
const klon = new Date();
klon.setTime(original.getTime());
console.log(klon.toISOString().slice(0, 10));2026-05-017 Tage zum aktuellen Zeitpunkt addieren
const date = new Date("2026-05-01T00:00:00Z");
date.setTime(date.getTime() + 7 * 24 * 60 * 60 * 1000);
console.log(date.toISOString().slice(0, 10));2026-05-08Auf Unix-Epoche zurücksetzen
const date = new Date();
date.setTime(0);
console.log(date.toISOString());1970-01-01T00:00:00.000ZNegativen Zeitstempel setzen
const date = new Date();
date.setTime(-1000 * 60 * 60 * 24 * 365);
console.log(date.toISOString());1969-01-01T00:00:00.000ZDate invalidieren
const date = new Date("2026-05-01");
date.setTime(NaN);
console.log(date.getTime());NaNHinweise & verwandte Methoden
setTime()ist die natürliche Umkehrung zugetTime().- Im Gegensatz zu
new Date(timestamp)erzeugtsetTime()kein neues Objekt – die ursprüngliche Referenz bleibt erhalten. Das ist wichtig, wenn das Date in mehreren Stellen referenziert wird. - Für relativ verschobene Zeitpunkte (z. B. „in 7 Tagen”) ist
setTime(getTime() + N)zuverlässiger alssetDate(getDate() + 7), wenn die Berechnung in UTC erfolgen soll. setTime(NaN)invalidiert das Date – ein Trick, um ein Date-Objekt explizit als „ungültig” zu markieren.