将X个月添加到日期的JavaScript函数我正在寻找最简单、最干净的方式将X个月添加到JavaScript日期。我还是不去了吧处理一年中的滚动或者不得不写我自己的函数.有什么内置的东西能做到这一点吗?
3 回答

HUWWW
TA贡献1874条经验 获得超12个赞
我认为这应该可以做到:
var x = 12; //or whatever offset
var CurrentDate = new Date();
console.log("Current date:", CurrentDate);
CurrentDate.setMonth(CurrentDate.getMonth() + x);
console.log("Date after " + x + " months:", CurrentDate);

慕容708150
TA贡献1831条经验 获得超4个赞
function addMonthsUTC (date, count) { if (date && count) { var m, d = (date = new Date(+date)).getUTCDate() date.setUTCMonth(date.getUTCMonth() + count, 1) m = date.getUTCMonth() date.setUTCDate(d) if (date.getUTCMonth() !== m) date.setUTCDate(0) } return date}
> d = new Date('2016-01-31T00:00:00Z');Sat Jan 30 2016 18:00:00 GMT-0600 (CST)> d = addMonthsUTC(d, 1); Sun Feb 28 2016 18:00:00 GMT-0600 (CST)> d = addMonthsUTC(d, 1);Mon Mar 28 2016 18:00:00 GMT-0600 (CST)> d.toISOString()"2016-03-29T00:00:00.000Z"
更新非协调世界时的日期:
function addMonths (date, count) { if (date && count) { var m, d = (date = new Date(+date)).getDate() date.setMonth(date.getMonth() + count, 1) m = date.getMonth() date.setDate(d) if (date.getMonth() !== m) date.setDate(0) } return date}
> d = new Date(2016,0,31);Sun Jan 31 2016 00:00:00 GMT-0600 (CST)> d = addMonths(d, 1);Mon Feb 29 2016 00:00:00 GMT-0600 (CST)> d = addMonths(d, 1);Tue Mar 29 2016 00:00:00 GMT-0600 (CST)> d.toISOString()"2016-03-29T06:00:00.000Z"
添加回答
举报
0/150
提交
取消