Die Methode Date.prototype.getMilliseconds() gibt die Millisekunden-Komponente eines Date-Objekts in der lokalen Zeitzone zurück. Der Rückgabewert liegt zwischen 0 und 999 und ergänzt damit Sekunden, Minuten und Stunden zu einer vollständigen Zeitangabe mit feinster Auflösung. Entgegen einer häufigen Verwechslung liefert die Methode nicht den Unix-Zeitstempel – dafür ist getTime() zuständig. getMilliseconds() ist insbesondere relevant für Performance-Messungen, präzises Logging und für Animationen, die mit Sub-Sekunden-Genauigkeit arbeiten.
Funktionsweise
getMilliseconds() extrahiert ausschließlich den Millisekundenanteil – also den Bruchteil einer Sekunde – eines Date-Objekts. Wichtig zu wissen:
- Wertebereich: 0 bis 999.
- Nicht zu verwechseln mit
getTime(), das Millisekunden seit dem 1. Januar 1970 UTC liefert. - Browser-Präzision: Aus Sicherheitsgründen (Spectre-Mitigation) reduzieren moderne Browser die Genauigkeit von
Date.now()und damit indirekt auch vongetMilliseconds()häufig auf 1–2 Millisekunden. Für hochpräzise Messungen istperformance.now()die bessere Wahl.
Syntax
date.getMilliseconds()Die Methode erwartet keine Parameter.
Rückgabewert
Eine Ganzzahl zwischen 0 und 999, die den Millisekundenanteil des Zeitpunkts repräsentiert. Bei einem ungültigen Datum wird NaN zurückgegeben.
Beispiele
Millisekunden auslesen
const date = new Date("2026-05-01T14:30:00.250");
console.log(date.getMilliseconds());250Zeit präzise mit drei Stellen formatieren
Da getMilliseconds() einstellige oder zweistellige Werte ohne führende Nullen liefert, ist padStart() für eine konsistente Ausgabe üblich.
function formatTimeMs(date) {
const hh = String(date.getHours()).padStart(2, "0");
const mm = String(date.getMinutes()).padStart(2, "0");
const ss = String(date.getSeconds()).padStart(2, "0");
const ms = String(date.getMilliseconds()).padStart(3, "0");
return `${hh}:${mm}:${ss}.${ms}`;
}
console.log(formatTimeMs(new Date("2026-05-01T14:30:05.045")));14:30:05.045Logging mit Millisekunden-Genauigkeit
Beim strukturierten Logging ist eine Millisekunden-Auflösung wichtig, um Ereignisse korrekt zu sortieren, die innerhalb derselben Sekunde stattfinden.
function log(nachricht) {
const now = new Date();
const ms = String(now.getMilliseconds()).padStart(3, "0");
console.log(`[${now.toISOString().slice(11, 19)}.${ms}] ${nachricht}`);
}
log("Verarbeitung gestartet");[14:30:05.123] Verarbeitung gestartetDifferenz zweier Zeitpunkte unter einer Sekunde
const start = new Date("2026-05-01T10:00:00.150");
const ende = new Date("2026-05-01T10:00:00.875");
const diff = ende.getMilliseconds() - start.getMilliseconds();
console.log(`${diff} ms`);725 msHinweise & verwandte Methoden
- Für Performance-Messungen ist
performance.now()deutlich präziser alsDate-basierte Verfahren – es nutzt eine monotone Uhr und ist nicht durch Systemzeit-Anpassungen gestört. - Die zeitzonenunabhängige Variante ist
Date.prototype.getUTCMilliseconds()und liefert in der Praxis denselben Wert, da Zeitzonen nicht im Millisekundenbereich variieren. - Zum Setzen:
Date.prototype.setMilliseconds(). Werte über 999 oder unter 0 führen zu einem Sekundenüberlauf. - Für Unix-Zeitstempel (Millisekunden seit Epoch) immer
getTime()oderDate.now()verwenden, niemalsgetMilliseconds().