Start · Sprachen · JavaScript · Referenz · Date.prototype.getMilliseconds()

Date.prototype.getMilliseconds()

Methode

Gibt den Millisekundenanteil (0–999) eines <code>Date</code>-Objekts gemäß Ortszeit zurück.

seit JavaScript ES1 (Baseline: alle Browser) Kategorie: method-property

Signatur

Date.prototype.getMilliseconds()

Beschreibung

getMilliseconds() liefert den Millisekundenanteil eines Date-Objekts als ganze Zahl von 0 bis 999. Gemeint ist nur der Anteil innerhalb der aktuellen Sekunde. Die Gesamtzahl der Millisekunden seit der Unix-Epoche bekommst du mit getTime().

Die Methode rechnet offiziell in Ortszeit. Weltweit verwendete Zeitzonen-Verschiebungen sind aber ganze Minuten, deshalb liefert sie in der Praxis immer denselben Wert wie getUTCMilliseconds().

Typische Einsätze sind Zeitstempel mit Millisekunden für Logs, eigene Datumsformate wie HH:MM:SS.mmm oder einfache Zeitmessungen. Für genaue Messungen eignet sich performance.now() besser.

Rückgabewert

Typ
number
Beschreibung
Eine ganze Zahl zwischen 0 und 999 mit den Millisekunden in Ortszeit. Bei einem ungültigen Datum ist das Ergebnis NaN.

Beispiele

Millisekunden eines festen Datums auslesen

const datum = new Date(2024, 2, 15, 10, 30, 45, 123);
console.log(datum.getMilliseconds());
123

Log-Zeitstempel im Format HH:MM:SS.mmm

const zeitstempel = (d = new Date()) => {
  const pad = (n, len = 2) => String(n).padStart(len, '0');
  return `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}.${pad(d.getMilliseconds(), 3)}`;
};

const log = (msg) => console.log(`[${zeitstempel()}] ${msg}`);
log('Server gestartet');
[14:07:09.042] Server gestartet (abhängig von der aktuellen Uhrzeit)

Ungültiges Datum und Überlauf beim Setzen

const ungueltig = new Date('kein Datum');
console.log(ungueltig.getMilliseconds());

// Werte über 999 laufen in die Sekunden über
const d = new Date(2024, 0, 1, 12, 0, 0, 0);
d.setMilliseconds(1500);
console.log(d.getSeconds(), d.getMilliseconds());
NaN 1 500

// Wichtig · Fallstricke

  • Nicht verwechseln: getMilliseconds() liefert nur 0–999. Für Epochen-Millisekunden verwendest du getTime() oder Date.now().
  • Bei ungültigen Datumsobjekten ist das Ergebnis NaN. Prüfe das vor der Formatierung mit Number.isNaN(d.getTime()). Sonst erzeugt padStart Ausgaben wie "NaN".
  • Genauigkeit: Manche Browser runden Zeitwerte zum Schutz vor Timing-Angriffen und Fingerprinting ab, z. B. Firefox mit privacy.resistFingerprinting. Die Millisekunden können dann auf 0 oder grobe Schritte fallen.
  • Für Zeitmessungen ist performance.now() genauer. Es läuft außerdem gleichmäßig weiter, auch wenn jemand die Systemuhr umstellt.
  • Die Methode wird in allen Browsern und in Node.js unterstützt.