How to add a number of months to a date using JavaScript?

To add a number of months to a date in JavaScript, you can use the setMonth() method combined with getMonth(). This approach automatically handles year transitions and varying month lengths.

Basic Syntax

date.setMonth(date.getMonth() + numberOfMonths);

Example: Adding Months to Current Date

<!DOCTYPE html>
<html>
<body>
    <script>
        var currentDate = new Date();
        var monthsToAdd = 3;
        
        document.write("Original Date: " + currentDate + "<br>");
        
        // Add 3 months
        currentDate.setMonth(currentDate.getMonth() + monthsToAdd);
        
        document.write("After adding " + monthsToAdd + " months: " + currentDate);
    </script>
</body>
</html>

Example: Adding Different Numbers of Months

<!DOCTYPE html>
<html>
<body>
    <script>
        function addMonthsToDate(date, months) {
            var result = new Date(date);
            result.setMonth(result.getMonth() + months);
            return result;
        }
        
        var startDate = new Date('2023-10-15');
        
        document.write("Start Date: " + startDate + "<br>");
        document.write("Add 2 months: " + addMonthsToDate(startDate, 2) + "<br>");
        document.write("Add 6 months: " + addMonthsToDate(startDate, 6) + "<br>");
        document.write("Add 15 months: " + addMonthsToDate(startDate, 15));
    </script>
</body>
</html>

Handling Edge Cases

When adding months to dates at the end of a month, JavaScript automatically adjusts for months with different numbers of days:

<!DOCTYPE html>
<html>
<body>
    <script>
        var endOfJanuary = new Date('2023-01-31');
        document.write("Original: " + endOfJanuary + "<br>");
        
        // Adding 1 month to Jan 31 gives Feb 28 (or 29 in leap year)
        endOfJanuary.setMonth(endOfJanuary.getMonth() + 1);
        document.write("After adding 1 month: " + endOfJanuary);
    </script>
</body>
</html>

Key Points

  • setMonth() automatically handles year transitions
  • Month values are 0-based (January = 0, December = 11)
  • JavaScript adjusts day values when the target month has fewer days
  • Use new Date(originalDate) to avoid modifying the original date object

Conclusion

Use setMonth(date.getMonth() + months) to add months to dates in JavaScript. This method handles year transitions and month-end edge cases automatically.

Updated on: 2026-03-15T21:50:46+05:30

819 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements