Signatur
Beschreibung
Die statische Methode Date.now() gibt die Anzahl der Millisekunden zurück, die seit der Epoche vergangen sind, welche als Mitternacht zu Beginn des 1. Januar 1970 UTC definiert ist.
Reduzierte Zeitpräzision
Um Schutz vor Timing-Angriffen und Fingerprinting zu bieten, kann die Präzision von Date.now() abhängig von den Browser-Einstellungen reduziert sein.
Der Timestamp ist immer eine ganzzahlige Anzahl von Millisekunden, sodass seine Auflösung in allen Kontexten auf 1 ms begrenzt ist. Dies erfüllt bereits bestimmte grundlegende Sicherheits- und Datenschutzanforderungen.
In Firefox ist die Einstellung privacy.reduceTimerPrecision standardmäßig aktiviert. Mit den Standardeinstellungen hat der Timestamp eine Auflösung von 1 ms. Wenn privacy.resistFingerprinting aktiviert ist, beträgt das Rundungsintervall 16,667 ms oder das durch privacy.resistFingerprinting.reduceTimerPrecision.microseconds konfigurierte Intervall, je nachdem, welches größer ist. Die endgültige Ausgabe wird auf eine ganze Zahl gerundet.
Zum Beispiel sind dies mögliche Werte in Firefox:
Rückgabewert
Beispiele
Mögliche Werte in Firefox bei reduzierter Zeitpräzision
// Reduced time precision (1 ms) with default settings
Date.now();
// Might be:
// 1519211809934
// 1519211810363
// 1519211811671
// …
// Reduced time precision with `privacy.resistFingerprinting` enabled
Date.now();
// Might be:
// 1519129853489
// 1519129853506
// 1519129853522
// …
Verstrichene Zeit messen
const start = Date.now();
doSomeLongRunningProcess();
console.log(`Time elapsed: ${Date.now() - start} ms`);