rolandjitsu - 7 months ago 47
Javascript Question

# Get time difference between two dates in seconds

I'm trying to get a difference between two dates in seconds. The logic would be like this :

• set an initial date which would be now;

• set a final date which would be the initial date plus some amount of seconds in future ( let's say 15 for instance )

• get the difference between those two ( the amount of seconds )

The reason why I'm doing it it with dates it's because the final date / time depends on some other variables and it's never the same ( it depends on how fast a user does something ) and I also store the initial date for other things.

I've been trying something like this :

``````var _initial = new Date(),
_initial = _initial.setDate(_initial.getDate()),
_final = new Date(_initial);
_final = _final.setDate(_final.getDate() + 15 / 1000 * 60);

var dif = Math.round((_final - _initial) / (1000 * 60));
``````

The thing is that I never get the right difference. I tried dividing by
`24 * 60`
which would leave me with the seconds, but I never get it right. So what is it wrong with my logic ? I might be making some stupid mistake as it's quite late, but it bothers me that I cannot get it to work :)

The Code

``````var startDate = new Date();
Or even simpler `(endDate - startDate) / 1000` as pointed out in the comments unless you're using typescript.
You need to call the `getTime()` method for the `Date` objects, and then simply subtract them and divide by 1000 (since it's originally in milliseconds). As an extra, when you're calling the `getDate()` method, you're in fact getting the day of the month as an integer between 1 and 31 (not zero based) as opposed to the epoch time you'd get from calling the `getTime()` method, representing the number of milliseconds since January 1st 1970, 00:00