EN
JavaScript - subtract months from date
3
points
In this article, we would like to show you how to subtract months from date in JavaScript.
Quick solution:
// ONLINE-RUNNER:browser;
const date = new Date('2021-06-30');
date.setMonth(date.getMonth() - 2); // subtracted 2 months from existing date
console.log(date.toISOString()); // 2021-04-30T00:00:00.000Z
1. Example reusable lambda function
In this example, we create a simple lambda function that takes two arguments:
date
to which we want to subtract some months,months
- a number of months we want to subtract.
Runnable example:
// ONLINE-RUNNER:browser;
const subtractMonths = (date, months) => {
const result = new Date(date);
result.setMonth(result.getMonth() - months);
return result;
};
// Usage example:
const date = new Date('2021-06-30');
const newDate = subtractMonths(date, 2); // subtracted 2 months from existing date
console.log(newDate.toISOString()); // 2021-04-30T00:00:00.000Z
Output:
2021-04-30T00:00:00.000Z
2. Extending existing Date
class with Date.prototype
In this example, we add a function to the Date.prototype
, so we can use it on any date object.
// ONLINE-RUNNER:browser;
Date.prototype.subtractMonths = function (months) {
this.setMonth(this.getMonth() - months);
};
// Usage example:
const date = new Date('2021-06-30');
date.subtractMonths(2); // subtracted 2 months from existing date
console.log(date.toISOString()); // 2021-04-30T00:00:00.000Z
Output:
2021-04-30T00:00:00.000Z