用这个脚本
var d = new Date(2010, 10, 30);
var e = new Date(d.getFullYear(), d.getMonth() + 3, d.getDate());
document.write(d + "<br>" + e);
为什么 2010 年 11 月 30 日加上 3 个月等于 2011 年 3 月 2 日?不是 2011 年 2 月 28 日吗?
2010 年 11 月 30 日和 2011 年 2 月 23 日是该月的最后一天。
最佳答案
在你的例子中,你指定的日期是
30 Feb 2011
转换成
2 Mar 2011
哪一种说得通,不是吗?
您一定要选择不同的添加时间跨度的方法。
要么显式计算每个月的最后一天,要么使用类似 date.js 的日期库.我自己没用过那个,但是 SO 用户 @CMS recommends it ,这对我来说已经足够了。
查看语法,这可能适用于 date.js:
Date.parse('November 30th 2010 + 3 months');
关于Javascript 2010 年 11 月 30 日加上 3 个月等于 2011 年 3 月 2 日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4132303/