var currentDate = moment('2015-10-30');var futureMonth = moment(currentDate).add(1, 'M');var futureMonthEnd = moment(futureMonth).endOf('month');if(currentDate.date() != futureMonth.date() && futureMonth.isSame(futureMonthEnd.format('YYYY-MM-DD'))) { futureMonth = futureMonth.add(1, 'd');}console.log(currentDate);console.log(futureMonth);[**DEMO**](http://jsbin.com/butuduhoti/edit?js,console)
编辑
moment.addRealMonth = function addRealMonth(d) { var fm = moment(d).add(1, 'M'); var fmEnd = moment(fm).endOf('month'); return d.date() != fm.date() && fm.isSame(fmEnd.format('YYYY-MM-DD')) ? fm.add(1, 'd') : fm; }var nextMonth = moment.addRealMonth(moment());[**DEMO**](https://jsbin.com/deduyoroso/edit?js,console)



