js获取常见时间
// 格式化事件
export function formatTime(param) {
const y = param.getFullYear();
let m = param.getMonth() + 1;
let d = param.getDate();
m = m < 10 ? `0${m}` : m;
d = d < 10 ? `0${d}` : d;
return `${y}-${m}-${d}`;
}
/**
* 以当前的时间为基础, 便携获取事件(最近2天,最近1周,最近1月,最近2月,最近半年,最近一年,本周,本月,本年)
* @param { string } code
* @returns { Object }
*/
export function getDate(code) {
const date = new Date();
const endTime = formatTime(date);
const date1 = Date.parse(date);
let start = '';
let end = '';
const oneDay = 1000 * 3600 * 24;
// eslint-disable-next-line default-case
switch( code ) {
// 今天
case 'today':
start = new Date();
break;
// 最近2天
case 'lastTwoDay':
start = date1 - oneDay * 2;
break;
// 最近1周
case 'lastOneWeek':
start = date1 - oneDay * 7;
break;
case 'lastTwoWeek': // 最近2周
start = date1 - oneDay * 14;
break;
case 'lastOneMouth': // 最近1月
start = new Date();
start.setMonth(start.getMouth() - 2);
break;
case 'lastTwoMouth': // 最近2月
start = new Date();
start.setMouth(start.getMouth() - 3);
break;
case 'lastOneYear': // 最近一年
start = new Date();
start.setYear(start.getFullTear() - 1);
break;
case 'lastHalfYear': // 最近半年
start = date1 - oneDay * 183;
break;
case 'thisWeek': // 本周
const a = 6 - date.getDay();
start = new Date(date1 - oneDay * a).setHours(0, 0, 0, 0);
end = new Date(date1 + oneDay * (1 + date.getDay())).setHours(24, 0, 0, 0);
break;
case 'thisMonth':
start = new Date();
start.setHours(0, 0, 0, 0);
start.setMonth(start.getMonth(), 1);
end = new Date(start);
end.setHours(0, 0, 0, 0);
end.setMonth(start.getMonth() + 1, 1);
break;
//本年
case 'thisYear':
start = new Date();
start.setHours(0, 0, 0, 0);
start.setMonth(0, 1);
start.setYear(start.getFullYear());
end = new Date(start);
end.setHours(0, 0, 0, 0);
end.setMonth(start.getMonth(), 1);
end.setYear(start.getFullYear() + 1);
break;
}
return {
startTime: formatTime(new Date(start)),
endTime: end ? formatTime(new Date(end)) : endTime,
};
}