June 27, 2020

You Learn about about finding difference in Seconds, Minutes, hours, days, weeks, months, years between two dates

Let’s create two variables `d1`

which points today, and `d2`

which denotes same day in previous year in `millisecond`

```
let d1 = Date.now(); // current day & time in millisecond
//
let today = new Date(d1);
let previousYear = today.getFullYear() - 1;
today.setYear( previousYear );
let d2 = today.getTime(); // current day and time of previousYear in millisecond
```

`1 second = 1000 milliseconds`

Now you are having two date `d1`

and `d2`

in milliseconds. To convert milliseconds into seconds ,we can divide the difference between of `d1`

and `d2`

by 1000

```
function secondsDiff(d1, d2) {
let millisecondDiff = d2 - d1;
let secDiff = Math.floor( ( d2 - d1) / 1000 );
return secDiff;
}
```

`1 minutes = 60 seconds`

We have method to find the number of seconds between two dates , so we can find seconds difference, then divide that by `60`

which will give us the number of minutes between two dates

```
function minutesDiff(d1, d2) {
let seconds = secondsDiff(d1, d2);
let minutesDiff = Math.floor( seconds / 60 );
return minutesDiff;
}
```

`1 hour = 60 minutes`

We have method to find the number of minutes between two dates , so we can find minutes difference, then divide that by 60 will give us the number of hours between two dates

```
function hoursDiff(d1, d2) {
let minutes = minutesDiff(d1, d2);
let hoursDiff = Math.floor( minutes / 60 );
return hoursDiff;
}
```

`1 day = 24 hours`

We have method to find the number of hours between two dates , so we can find difference, then divide that by 24 will give us the number of days between two dates

```
function daysDiff(d1, d2) {
let hours = hoursDiff(d1, d2);
let daysDiff = Math.floor( hours / 24 );
return daysDiff;
}
```

`1 week = 7 days`

We have method to find the number of days between two dates , so we can find difference, then divide that by 7 will give us the number of weeks between two dates

```
function weeksDiff(d1, d2) {
let days = daysDiff(d1, d2);
let weeksDiff = Math.floor( days/ 7 );
return weeksDiff;
}
```

To find number of years between two dates we have in-built method getFullYear , Subtract the date2 year with date1 year, we will get yearsDiff

```
function yearsDiff(d1, d2) {
let date1 = new Date(d1);
let date2 = new Date(d2);
let yearsDiff = date2.getFullYear() - date1.getFullYear();
return yearsDiff;
}
```

`1 month = 30||31||27||28 days`

Number of days in month is not same in all months , so we need to do it differently

Steps :

- First we need to find number of years between two dates.
- Multiply number of years between two dates by 12(because for each year 12 months)
- Subtract the month number(Jan → 0, Feb → 1, ...) of second date with the month number of first date
- Finding number of months between two dates

```
function monthsDiff(d1, d2) {
let date1 = new Date(d1);
let date2 = new Date(d2);
let years = yearsDiff(d1, d2);
let months =(years * 12) + (date2.getMonth() - date1.getMonth()) ;
return months;
}
```