function getMonthAfter (num){
var dt = new Date();
dt.setMonth( dt.getMonth()+num );
return dt.toLocaleString()
}
知道问题所在了,那应该如何处理这个问题呢?
function getMonthAfter (num){
var dt = new Date();
dt.setMonth( dt.getMonth()+num );
return dt.toLocaleString()
}
知道问题所在了,那应该如何处理这个问题呢?
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.2k 阅读
因为js的
Date
对象对溢出时间进行了自己的处理。今天是
7月31日
你Month-1
得到6月31日
但是6月没有31日,多出来的一天自动加上去就变成
7月1日
了你可以试下
dt.setMonth(1)
设置成二月,会发现结果是3月3日
或设置成超出本月最大日期的数字,比如
dt.setDate(35)
结果是8月4日
都是因为这个自动处理算法的原因