`date.setMonth` causes the month to be set too high if `date` is at the end of the month
date, javascript
Solution
Let's break this down:
var d = new Date(); // date is now 2013-01-31
d.setMonth(1); // date is now 2013-02-31, which is 3 days past 2013-02-28
x = d.getMonth(); // what to do, what to do, 3 days past 2013-02-28 is in March
// so, expect x to be March, which is 2
This is only an issue when the day value of `d` is greater than the maximum number of days in the month passed to `setMonth()`. Otherwise, it works as you'd expect.
Problem
A Date object’s `getMonth()` method seems to have a bug. Assuming the Date `d` is `2013-01-31`, I attempt to set the month on `d` like this: ``` const d = new Date(); // 2013-01-31 d.setMonth(8); console.log(d.getMonth()); ``` The result is `9`. Why? I tested this both in Chrome and Firefox. I found out that when it’s the 31st, 30th, or 29th of a month, setting the date to a month that has a fewer number of days causes `getMonth` to return the wrong value.