Reputation: 196831
I have an input field that needs to be incremented by one month using the JavaScript Date object. Below is an example of an effort I have made in incrementing the month. The issue with this seems to be that it will display 0 as January and does not increment the year.
nDate.setDate(nDate.getDate());
inputBox1.value = (nDate.getMonth() + 1) + "/" + (nDate.getDate()) + "/" + (nDate.getFullYear());
Upvotes: 19
Views: 91118
Reputation: 272386
Use Date.setMonth
:
var d = new Date(2000, 0, 1); // January 1, 2000
d.setMonth(d.getMonth() + 1);
console.log(d.getFullYear(), d.getMonth() + 1, d.getDate());
Date.setMonth
is range proof i.e. months other than 0...11 are adjusted automatically.
Upvotes: 52
Reputation: 11274
You'll have to get the text out of the text box, which you can then pass to the Date() constructor:
var d = new Date(text);
Then format the date string:
var str = d.getDate(), d.getMonth() + 1, d.getFullYear()
And set the test box to that value
Upvotes: -6