This is a
playground to test code. It runs a full
Node.js environment and already has all of
npm’s 400,000 packages pre-installed, including
addmonths with all
npm packages installed. Try it out:
This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.
This package is deprecated in favor of @jsbits/add-months.
Unlike addMonths, @jsbits/add-months handles changes in the timezone correctly, has better support, 100% coverage, and the version for
Date.prototype is more consistent with other Date methods.
npm i addmonths --save
bower install addmonths --save
<script src="https://unpkg.com/addmonths/dist/addmonths.js"></script> <!-- ...or to inject `addMonths` to `Date.prototype` --> <script src="https://unpkg.com/addmonths/dist/addmonths.auto.js"></script>
newdate = addMonths(startdate, count)
addMonths function returns a date occurring
count months after
startdate or, if
count is negative, the date occurring
count months before
If there is an overflow in the day, the date is adjusted to the last valid day of the expected month.
startdate is not a date, returns
startdate without changes.
startdate is an invalid date (i.e.
NaN), returns a new
Date instance with an invalid date.
count is evaluated as zero, returns a new
Date instance with the same value as
const addMonths = require('addmonths') addMonths(new Date(2017, 0, 1), 2) // 2017-01-01 ==> 2017-03-01 addMonths(new Date(2017, 0, 1), -1) // 2017-01-01 ==> 2016-12-01 addMonths(new Date(2016, 0, 31), 1) // 2016-01-31 ==> 2016-02-29 addMonths(new Date(2016, 0, 31), 0) // new instance with the same value addMonths('2017-06-12', 1) // the same string
If you prefer, you can inject the function into the
Date prototype of Date requiring "auto" or by loading the IIFE from "dist/addmonths.auto.js" in your browser:
require('addmonths/auto') const date = new Date().addMonths(3)
The MIT License (MIT)
Copyright (c) 2017 Alberto Martínez (https://github.com/aMarCruz)