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.
+ 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());
var time = Date.now || function() {
return +new Date;
};
time();