Home > database >  Adding months to date in js
Adding months to date in js

Time:06-03

This is the stack answer I followed: https://stackoverflow.com/a/5645110/1270259

To create:

            let start = new Date(data.start_date);
            let end   = new Date(start.setMonth(start.getMonth()   1));

            start = start.toISOString().split('T')[0]
            end   = end.toISOString().split('T')[0]

            console.log(start, end);
  • Expected: start: 2022-07-23 end: 2022-08-23
  • Actual: start: 2022-07-23 end: 2022-07-23

Is this not how you properly add a month to a date? The stack answer states it is correct - am I missing something

CodePudding user response:

By calling start.setMonth you end up updating the month on both dates. (This is noted in one of the comments on the answer you followed, but not in the answer itself.)

Separate the statements to only affect the date you want changed:

let start = new Date();
let end = new Date(start);
end.setMonth(end.getMonth()   1);

console.log(start, end)

  • Related