工具方法记录:
用于日期组件选择月份时
/**
* 计算两个日期之间相差的月份
* @param {Date} minDate 最小日期
* @param {Date} maxDate 最大日期
*/
export const getMonthRange = function(minDate,maxDate){
if (minDate && maxDate) {
let minYear = minDate.getFullYear();
let minMonth = minDate.getMonth()+1;
let maxYear = maxDate.getFullYear();
let maxMonth = maxDate.getMonth()+1;
return (maxYear*12+maxMonth) - (minYear*12+minMonth)
} else {
return ''
}
}
/**
* 计算特定日期x月(前后)的日期
* @param {Date} souceDate 特定日期
* @param {Number} month 月份差,当为正数时计算x月后日期,为负数时计算x月前日期
*/
export const getDateByMonth = function(souceDate,month){
//计算参照日期的月份总数
let sourceMonths = souceDate.getFullYear()*12 + souceDate.getMonth()+1;
//计算目标日期的月份总数
let targetMonths = sourceMonths + month;
//计算目标日期年份
let targetYear = Math.floor(targetMonths/12);
//计算目标日期月份
let targetMonth = targetMonths%12;
//返回计算结果,默认设置为1号
let time = new Date(targetYear,0,1);
time.setMonth(targetMonth);
time.setDate(0)
return time;
}
网友评论