# How to Get the Number of Months Between Two Dates in JavaScript

#### Subscribe to Coding Beauty Newsletter

Gain useful insights and advance your web development knowledge with weekly tips and tutorials from Coding Beauty. Over 2,000 developers subscribe.

## 1. `Date``getMonth()` method

To get the number of months between two dates in JavaScript:

1. Use `date1.getMonth() - date2.getMonth()` to get the month difference between the two dates.
2. Use `date1.getYear() - date2.getYear()` to get the difference between the two dates.
3. Add the month difference to the year difference multiplied by 12, i.e, `monthDiff + yearDiff * 12`.

For example:

JavaScript
``````function differenceInMonths(date1, date2) {
const monthDiff = date1.getMonth() - date2.getMonth();
const yearDiff = date1.getYear() - date2.getYear();

return monthDiff + yearDiff * 12;
}

// June 5, 2022
const date1 = new Date('2022-06-05');

// March 17, 2021
const date2 = new Date('2021-03-17');

const difference = differenceInMonths(date1, date2);

console.log(difference); // 15
``````

Our reusable `differenceInMonths()` function takes two `Date` objects and returns the difference in months between them. The first argument is the start date, and the second is the end date.

The `Date` `getMonth()` method returns a zero-based number that represents the month of a particular date.

Note: “Zero-based” here means that `0` is January, `1` is February, `2` is March, etc.

Apart from subtracting the months, we also need to subtract the years, because the two dates might have different years, and this would of course affect the number of months between them. We use the `getFullYear()` method to get the years of the dates and subtract them.

The `Date` `getFullYear()` method returns a number that represents the year of a particular date.

A year equals 12 months, so after getting the year difference, we multiple it by 12 to get the equivalent months, and add it to the month difference.

## 2. `date-fns``differenceInMonths()` function

Alternative we can use the `differenceInMonths()` function from the `date-fns` NPM package to quickly get the difference in months between two dates in JavaScript. It works just like our own `differenceInMonths()` function, taking two `Date` objects and returning the difference in their months.

JavaScript
``````import { differenceInMonths } from 'date-fns';

const date1 = new Date('2022-08-10');

const date2 = new Date('2020-02-24');

const difference = differenceInMonths(date1, date2);

console.log(difference); // 29
``````

## Every Crazy Thing JavaScript Does

A captivating guide to the subtle caveats and lesser-known parts of JavaScript.