Hoe krijg ik een timestamp in JavaScript?
Iets dat lijkt op Unix timestamp, dat wil zeggen een enkel getal dat de huidige tijd en datum weergeeft. Hetzij als een getal, hetzij als een string.
+ new Date()
Een unary operator als plus
activeert de valueOf
methode in het Date
object en deze geeft de timestamp (zonder enige wijziging) terug.
Details:
Op bijna alle huidige browsers kun je Date.now()
gebruiken om de UTC tijdstempel in milliseconden te krijgen; een opmerkelijke uitzondering hierop is IE8 en eerder (zie compatibiliteitstabel).
Je kunt hier echter gemakkelijk een shim voor maken:
if (!Date.now) {
Date.now = function() { return new Date().getTime(); }
}
Om de timestamp in seconden te krijgen, kun je gebruiken:
Math.floor(Date.now() / 1000)
Of als alternatief kunt u gebruiken:
Date.now() / 1000 | 0
Wat iets sneller zou moeten zijn, maar ook minder leesbaar (ook zie dit antwoord).
Ik zou aanraden om Date.now()
te gebruiken (met compatibiliteitsshim). Het'is iets beter omdat het'korter is & maakt geen nieuw Datum
object aan. Echter, als je geen shim wilt & maximale compatibiliteit, zou je de "old" methode kunnen gebruiken om de timestamp in milliseconden te krijgen:
new Date().getTime()
Die je dan als volgt kunt omzetten naar seconden:
Math.round(new Date().getTime()/1000)
En je kunt ook de valueOf
methode gebruiken die we hierboven hebben laten zien:
new Date().valueOf()
Timestamp in milliseconden
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());