1.选中前后两个月
通过使用element-ui组件库中的时间选择器
1.picker-options对时间进行限制
2.根据自己的需求进行条件的判断,现在这里判断的是只能选择当月和上个月
2.选中周,月,季节,年
// 设置其他时间
const setTime = (type: string) => { //选中的是周,月,季,年
//state.timeCard.itmeActive = type;
let now = new Date();
let year = new Date().getFullYear();
let time = [];
if (type == "week") {
// 周
let datOfWeek = now.getDay();
let Monday = new Date();
let Sunday = new Date();
if (datOfWeek > 0) {
Monday = Monday.setDate(Monday.getDate() - datOfWeek + 1);
Sunday = Sunday.setDate(Sunday.getDate() - datOfWeek + 7);
} else {
Monday = Monday.setDate(Monday.getDate() - 6);
}
time = [
moment(Monday).format("YYYY-MM-DD"),
moment(Sunday).format("YYYY-MM-DD"),
];
} else if (type == "month") {
// 月
let currentMonthStart = new Date(now.getFullYear(), now.getMonth(), 1);
let currentMonthEnd = new Date(now.getFullYear(), now.getMonth() + 1, 0);
time = [
moment(currentMonthStart).format("YYYY-MM-DD"),
moment(currentMonthEnd).format("YYYY-MM-DD"),
];
} else if (type == "quarter") {
// 季
let start;
let end;
let jd = Math.ceil((now.getMonth() + 1) / 3);
start = new Date(now.getFullYear(), (jd - 1) * 3, 1);
end = new Date(now.getFullYear(), jd * 3, 0);
time = [
moment(start).format("YYYY-MM-DD"),
moment(end).format("YYYY-MM-DD"),
];
} else if (type == "year") {
//年
let start;
let end;
start = new Date(now.getFullYear(), 0, 1);
end = new Date(now.getFullYear(), 11, 31);
time = [
moment(start).format("YYYY-MM-DD"),
moment(end).format("YYYY-MM-DD"),
];
}
//state.search.time = [time[0] + " 00:00:00", time[1] + " 23:59:59"];
//getData(); 掉接口
};
3.选中本学期,本学年
// 设置其他时间
const setTime = (type: string) => {
//state.timeCard.itmeActive = type;
let now = new Date();
let year = new Date().getFullYear();
let time = [];
if (type == "semester") {
/**
* 学期
* 01.01-03.01 03.01-09.01 09.01-12.31
* 上一年09.01-当前年03.01 当前年03.01-当前年09.01 当前年09.01-下一年03.01
*/
let start;
let end;
if (now < new Date(year + "-03-01")) {
start = new Date(year - 1 + "-09-01");
end = new Date(year, 2, 0);
} else if (
(now > new Date(year + "-03-01") || now == new Date(year + "-03-01")) &&
now < new Date(year + "-09-01")
) {
start = new Date(year + "-03-01");
end = new Date(year, 8, 0);
} else if (
now > new Date(year + "-09-01") ||
now == new Date(year + "-09-01")
) {
start = new Date(year + "-09-01");
end = new Date(year, 2, 0);
}
time = [
moment(start).format("YYYY-MM-DD"),
moment(end).format("YYYY-MM-DD"),
];
} else if (type == "year") {
/**
* 学年
* 小于09.01 大于09.01
* 上一年09.01-当前年09.01 当前09.01-下一年09.01
*/
let start;
let end;
if (now < new Date(year + "-09-01")) {
start = new Date(year - 1 + "-09-01");
end = new Date(year, 8, 0);
} else {
start = new Date(year + "-09-01");
end = new Date(year + 1, 8, 0);
}
time = [
moment(start).format("YYYY-MM-DD"),
moment(end).format("YYYY-MM-DD"),
];
}
};