Die Methode Date.prototype.getTime() gibt die Anzahl der Millisekunden zurück, die zwischen dem 1. Januar 1970, 00:00:00 UTC (der Unix-Epoche) und dem repräsentierten Zeitpunkt liegen. Sie ist eine der wichtigsten Methoden des Date-Objekts und bildet die Grundlage für sämtliche Zeitarithmetik: Vergleiche, Differenzberechnungen, Klonen, Serialisierung. Anders als die statische Methode Date.now() arbeitet getTime() auf einer konkreten Date-Instanz und liefert deren internen Zeitwert.
Funktionsweise
Intern speichert ein Date-Objekt seinen Zustand als einzelne Zahl: die Millisekunden seit der Unix-Epoche. getTime() gibt genau diesen Wert zurück. Das hat mehrere Konsequenzen:
- Zeitzone irrelevant: Der zurückgegebene Wert ist immer absolut und unabhängig von der lokalen Zeitzone.
- Negative Werte: Möglich für Datumsangaben vor dem 1. Januar 1970.
- Maximum: Date-Objekte können Zeitpunkte zwischen ±100.000.000 Tagen relativ zur Epoche abbilden – mehr als 273.000 Jahre in jede Richtung.
- Ungültiges Datum: Liefert
NaN. Das ist die zuverlässigste Methode, um die Gültigkeit eines Date-Objekts zu prüfen:Number.isNaN(date.getTime()).
getTime() ist äquivalent zu Date.prototype.valueOf() und wird automatisch beim numerischen Vergleich (<, >, -) zweier Date-Objekte aufgerufen.
Syntax
date.getTime()Die Methode erwartet keine Parameter.
Rückgabewert
Eine Zahl, die die Millisekunden zwischen dem 1. Januar 1970, 00:00:00 UTC und dem Zeitpunkt der Date-Instanz repräsentiert. Bei einem ungültigen Datum wird NaN zurückgegeben.
Beispiele
Zeitstempel ermitteln
const date = new Date("2026-05-01T00:00:00Z");
console.log(date.getTime());1777593600000Differenz zwischen zwei Daten in Tagen
function tageDifferenz(a, b) {
const ms = b.getTime() - a.getTime();
return Math.round(ms / (1000 * 60 * 60 * 24));
}
const start = new Date("2026-01-01");
const ende = new Date("2026-05-01");
console.log(tageDifferenz(start, ende));120Date-Objekt klonen
Da Date-Objekte mutierbar sind, ist das Klonen ein häufiger Use Case. Über den Timestamp lässt sich das sauber lösen.
const original = new Date("2026-05-01");
const klon = new Date(original.getTime());
klon.setFullYear(2030);
console.log(original.getFullYear());
console.log(klon.getFullYear());2026
2030Vergleich zweier Daten
Date-Objekte direkt mit === zu vergleichen funktioniert nicht – sie sind nur referenzgleich, wenn es sich um dasselbe Objekt handelt. Über getTime() ist der Vergleich zuverlässig.
const a = new Date("2026-05-01");
const b = new Date("2026-05-01");
console.log(a === b);
console.log(a.getTime() === b.getTime());false
trueValidierung eines Datums
function istGueltig(date) {
return !Number.isNaN(date.getTime());
}
console.log(istGueltig(new Date("2026-05-01")));
console.log(istGueltig(new Date("kein Datum")));true
falsePerformance-Messung
Mit getTime() lassen sich grobe Laufzeitmessungen anstellen – für hochpräzise Messungen ist allerdings performance.now() die bessere Wahl.
const start = new Date().getTime();
for (let i = 0; i < 1_000_000; i++) {}
const ende = new Date().getTime();
console.log(`Dauer: ${ende - start} ms`);Dauer: 4 msHinweise & verwandte Methoden
Date.prototype.valueOf()liefert denselben Wert wiegetTime()und wird automatisch beim numerischen Vergleich aufgerufen. Der AusdruckdateB - dateAfunktioniert daher direkt.- Die statische Methode
Date.now()liefert den aktuellen Zeitstempel ohne Umweg über eine Date-Instanz – performanter, wenn nur die aktuelle Zeit benötigt wird. - Zum Setzen des absoluten Zeitwerts:
Date.prototype.setTime(). - Für hochpräzise Performance-Messungen ist
performance.now()(monotone Uhr, Sub-Millisekunden-Auflösung) die richtige Wahl. - Achtung: Beim Speichern in JSON wird ein Date-Objekt als ISO-String serialisiert, nicht als Timestamp. Wer den Timestamp persistieren möchte, muss explizit
getTime()aufrufen.