JavaScript的月份加和问题的代码说明
程序员文章站
2022-03-08 22:37:58
javascript的date直接加month可能造成日期顺延,比如2018-05-31,直接加6个月,因为11月没有31日,就变成2018-12-01了,想和java一样变成2018-11-30,...
javascript的date直接加month可能造成日期顺延,比如2018-05-31,直接加6个月,因为11月没有31日,就变成2018-12-01了,想和java一样变成2018-11-30,如果不使用第三方库,要先把日期改成1日,然后再加月份,再设置日期才行。
function adddate1() { var date = new date('2018-05-31'); date.setmonth(date.getmonth() + 6); console.log(date.tolocaledatestring()); // 2018/12/1 }
function adddate2() { var date = new date('2018-05-31'); var olddate = date.getdate();//获取该月有多少日 date.setdate(1);//设置为1日(day) date.setmonth(date.getmonth() + 6);//设置当前月份(从0开始) var newday= new date(date.getyear(), date.getmonth()+1, 0).getdate();//获取该月有多少日 date.setdate(math.min(olddate, newday)); console.log(date.tolocaledatestring()); // 2018/11/30 }