При попытке добавить или вычесть месяцы из объекта Javascript Date (), который является конечной датой месяца, JS автоматически перемещает ваш объект Date до первой даты следующего месяца, если итоговая дата не существует в его месяце.
Я бы порекомендовал использовать для этого библиотеку, например моменталы,
. Вы можете сделать это с помощью
var monthsOldDate = moment().subtract(6, 'months');
console.log(monthsOldDate.month()) //will log 10 (November)
monthsOldDate = monthsOldDate.set("month", monthsOldDate.month())
console.log(monthsOldDate.format("Do MMMM YYYY")) //30th November 2017