How can I get seconds since epoch in Javascript?

On Unix, I can run date '+%s' to get the amount of seconds since epoch. But I need to query that in a browser front-end, not back-end.

Is there a way to find out seconds since Epoch in JavaScript?


Solution 1:

var seconds = new Date() / 1000;

Or, for a less hacky version:

var d = new Date();
var seconds = d.getTime() / 1000;

Don't forget to Math.floor() or Math.round() to round to nearest whole number or you might get a very odd decimal that you don't want:

var d = new Date();
var seconds = Math.round(d.getTime() / 1000);

Solution 2:

Try this:

new Date().getTime() / 1000

You might want to use Math.floor() or Math.round() to cut milliseconds fraction.

Solution 3:

You wanted seconds since epoch

function seconds_since_epoch(){ return Math.floor( Date.now() / 1000 ) }

example use

foo = seconds_since_epoch();

Solution 4:

The above solutions use instance properties. Another way is to use the class property Date.now:

var time_in_millis = Date.now();
var time_in_seconds = time_in_millis / 1000;

If you want time_in_seconds to be an integer you have 2 options:

a. If you want to be consistent with C style truncation:

time_in_seconds_int = time_in_seconds >= 0 ?
                      Math.floor(time_in_seconds) : Math.ceil(time_in_seconds);

b. If you want to just have the mathematical definition of integer division to hold, just take the floor. (Python's integer division does this).

time_in_seconds_int = Math.floor(time_in_seconds);

Solution 5:

If you want only seconds as a whole number without the decimals representing milliseconds still attached, use this:

var seconds = Math.floor(new Date() / 1000);