代码参考:
//获取前一个月的日期
//入参格式:YYYY-MM-DD
function getPreMonthDay(date) {
var arr = date.split('-');
var year = arr[0]; //当前年
var month = arr[1]; //当前月
var day = arr[2]; //当前日
//验证日期格式为YYYY-MM-DD
var reg = date.match(/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/);
if ((!reg) || (month > 12) || (day > 31)) {
console.log('日期或格式有误!请输入正确的日期格式(年-月-日)');
return;
}
var pre_year = year; //前一个月的年
var pre_month = parseInt(month) - 1; //前一个月的月,以下几行是上月数值特殊处理
if (pre_month === 0) {
pre_year = parseInt(pre_year) - 1;
pre_month = 12;
}
var pre_day = parseInt(day); //前一个月的日,以下几行是特殊处理前一个月总天数
var pre_month_alldays = new Date(pre_year, pre_month, 0).getDate(); //巧妙处理,返回某个月的总天数
if (pre_day > pre_month_alldays) {
pre_day = pre_month_alldays;
}
if (pre_month < 10) { //补0
pre_month = '0' + pre_month;
}
else if (pre_day < 10) { //补0
pre_day = '0' + pre_day;
}
var pre_month_day = pre_year + '-' + pre_month + '-' + pre_day;
return pre_month_day;
}
console.log(getPreMonthDay('2020-1-3'));
至此。转载请注明出处,记得扫码打赏支持哦,谢谢!