Friday 21 October 2016

date - How do you get a timestamp in JavaScript?



How can I get a timestamp in JavaScript?



Something similar to Unix timestamp, that is, a single number that represents the current time and date. Either as a number or a string.


Answer






+ new Date()


A unary operator like plus triggers the valueOf method in the Date object and it returns the timestamp (without any alteration).



Details:



On almost all current browsers you can use Date.now() to get the UTC timestamp in milliseconds; a notable exception to this is IE8 and earlier (see compatibility table).




You can easily make a shim for this, though:



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


To get the timestamp in seconds, you can use:




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


Or alternatively you could use:



Date.now() / 1000 | 0


Which should be slightly faster, but also less readable (also see this answer).




I would recommend using Date.now() (with compatibility shim). It's slightly better because it's shorter & doesn't create a new Date object. However, if you don't want a shim & maximum compatibility, you could use the "old" method to get the timestamp in milliseconds:



new Date().getTime()


Which you can then convert to seconds like this:



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



And you can also use the valueOf method which we showed above:



new Date().valueOf()


Timestamp in Milliseconds





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());




No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...