Check out my latest book: Technical Writing for Software Engineers - A Handbook

# Date difference in days, minutes, hours, and seconds

Below you can find a snippet to calculate the difference in days, hours, minutes, and seconds - between two dates.

``````const deadline = new Date("2050-01-01T00:00:00-06:00");
const now = new Date();
let delta = (deadline.getTime() - now.getTime()) / 1000;
const days = Math.floor(delta / 86400);
delta -= days * 86400;

const hours = Math.floor(delta / 3600) % 24;
delta -= hours * 3600;

const minutes = Math.floor(delta / 60) % 60;
delta -= minutes * 60;

const seconds = Math.floor(delta % 60);``````

## Explanation

First, we calculate the difference between two dates. `Date` subtraction in Javascript, will yield a difference in milliseconds, therefor we divide by 1000. The rest - is just math.

• `86400` - is the number of seconds in a day (60x60x24)
• `3600` - is the number of seconds in an hour (60x60)

## Usage

You can use it to display a countdown towards a future date, for example by recalculating it every second, using `setInterval`, and updating some HTML elements.

You can also use it to display how much time passed since a past date (a count up), but in that case, make sure yo wrap the `delta` in `Math.abs`, otherwise you will get negative numbers.

javascript
typescript