var date = new Date(year,month-1,0,0,0,0,0);//year、month为参数,其余参数是天、时分秒、毫秒(也可以自己传入)
然后通过
var year = date.getFullYear();
var month = date.getMonth();
可以获取上一个月所在的年月
getMonth()函数获取的月份需要+1才是最终显示的月份
但是在new Date()构造函数传入的month又好像是显示到界面的month
如果是new Date(2018,0,0,0,0,0,0)
通过
var year = date.getFullYear();
var month = date.getMonth();
获取的则是2017年12月
所以最终的方式如下:
var date = new Date(year,month-1,0,0,0,0,0);
var year = date.getFullYear();
var month = date.getMonth();
大部分情况下第一反应或是根据毫秒数推算,或者写一堆条件判断去判断跨年、跨月,还有一个月是28、29、30还是31一天
其实可以考虑根据构造函数去构造一个时间日期对象,通过函数库内部提供的方法计算从代码逻辑上来看也比较方便和清晰