Hogyan kaphatunk időbélyeget JavaScriptben?

Hogyan kaphatok időbélyeget JavaScriptben?

Valami hasonlót, mint a Unix timestamp, azaz egy számot, amely az aktuális időt és dátumot jelöli. Akár számként, akár karakterláncként.

Megoldás

Rövid & samp; Snazzy:

+ new Date()

Egy olyan unáris operátor, mint a plus, kiváltja a valueOf metódust a Date objektumban, és az visszaadja az időbélyeget (minden változtatás nélkül).

Details:

Majdnem minden jelenlegi böngészőben használhatjuk a Date.now() parancsot a UTC időbélyeg millimásodpercben történő lekérdezéséhez; ez alól jelentős kivétel az IE8 és a korábbiak (lásd kompatibilitási táblázat).

Erre azonban könnyen készíthetsz egy shimet:

if (!Date.now) {
    Date.now = function() { return new Date().getTime(); }
}

Az időbélyegző másodpercben történő lekérdezéséhez használhatod a következőt:

Math.floor(Date.now() / 1000)

Vagy alternatívaként használhatja a következőt:

Date.now() / 1000 | 0

Ami valamivel gyorsabb lenne, de kevésbé olvasható (lásd ezt a választ is lásd ezt a választ).

Én a Date.now() használatát javasolnám (kompatibilitási shimmel). Ez valamivel jobb, mert rövidebb & nem hoz létre új Date objektumot. Ha azonban nem akarsz shimmp-et &; maximális kompatibilitást, használhatod a "old" metódust, hogy megkapd az időbélyeget millimásodpercben:

new Date().getTime()

Amit aztán így konvertálhat másodpercekre:

Math.round(new Date().getTime()/1000)

És használhatod az valueOf módszert is, amit fentebb mutattunk:

new Date().valueOf()

Időbélyeg milliszekundumban

var timeStampInMs = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now();

console.log(timeStampInMs, Date.now());
Kommentárok (16)
var time = Date.now || function() {
  return +new Date;
};

time();
Kommentárok (5)
var timestamp = Number(new Date()); // current time as number
Kommentárok (0)