Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Date.now()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Die statische Methode Date.now() gibt die Anzahl der Millisekunden zurück, die seit der Epoche vergangen sind. Diese ist als Mitternacht zu Beginn des 1. Januar 1970 (UTC) definiert.

Probieren Sie es aus

// This example takes 2 seconds to run
const start = Date.now();

console.log("starting timer...");
// Expected output: "starting timer..."

setTimeout(() => {
  const ms = Date.now() - start;

  console.log(`seconds elapsed = ${Math.floor(ms / 1000)}`);
  // Expected output: "seconds elapsed = 2"
}, 2000);

Syntax

js
Date.now()

Parameter

Keine.

Rückgabewert

Eine Zahl, die den Zeitstempel der aktuellen Zeit in Millisekunden darstellt.

Beschreibung

Reduzierte Zeitgenauigkeit

Zum Schutz vor Timing-Angriffen und Fingerprinting kann die Genauigkeit von Date.now() je nach Browsereinstellungen reduziert sein.

Der Zeitstempel ist immer eine ganzzahlige Anzahl von Millisekunden. Seine Auflösung ist daher in allen Kontexten auf 1 ms begrenzt. Dies erfüllt bereits bestimmte grundlegende Anforderungen an Sicherheit und Datenschutz.

In Firefox ist die Einstellung privacy.reduceTimerPrecision standardmäßig aktiviert. Mit den Standardeinstellungen hat der Zeitstempel eine Auflösung von 1 ms. Wenn privacy.resistFingerprinting aktiviert ist, beträgt das Rundungsintervall 16,667 ms oder den durch privacy.resistFingerprinting.reduceTimerPrecision.microseconds konfigurierten Wert, je nachdem, welcher größer ist. Die endgültige Ausgabe wird auf eine ganze Zahl gerundet.

Dies sind beispielsweise mögliche Werte in Firefox:

js
// 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
// …

Beispiele

Vergangene Zeit messen

Mit Date.now() können Sie die aktuelle Zeit in Millisekunden ermitteln und davon einen zuvor ermittelten Wert abziehen, um festzustellen, wie viel Zeit zwischen den beiden Aufrufen vergangen ist.

js
const start = Date.now();
doSomeLongRunningProcess();
console.log(`Time elapsed: ${Date.now() - start} ms`);

Für komplexere Szenarien empfiehlt sich stattdessen die Performance API.

Spezifikationen

Spezifikation
ECMAScript® 2027 Language Specification
# sec-date.now

Browser-Kompatibilität

Siehe auch