需求:日历中,点击某一天,判断这一天是否在本周内
1.首先获取本周的开始时间和结束时间
data(){
return {
datearr: {
weekstartdate: "",
weekenddate: "",
},
Dateweekdata: {},
currentWeektime: {
starttime: "",
endtime: "",
},
}
}
getMonday(type, dates) {
// 新的获取周的起止时间
let now = new Date();
let nowTime = now.getTime();
let day = now.getDay();
let longTime = 24 * 60 * 60 * 1000;
let n = longTime * 7 * (dates || 0);
let dd = null;
if (type == "s") {
dd = nowTime - (day - 1) * longTime + n;
}
if (type == "e") {
dd = nowTime + (7 - day) * longTime + n;
}
dd = new Date(dd);
let y = dd.getFullYear();
let m = dd.getMonth() + 1;
let d = dd.getDate();
m = m < 10 ? "0" + m : m;
d = d < 10 ? "0" + d : d;
let days = y + "-" + m + "-" + d;
return days;
},
setWeekDay() {
// 设置本周起止时间
let data = {};
data.startDate = this.getMonday("s", 0);
data.endDate = this.getMonday("e", 0);
this.Dateweekdata = data;
// console.log(this.Dateweekdata, "----------Dateweekdata");
},
// 获取本周时间
getweekdate() {
let dateinfo = this.Dateweekdata;
this.datearr.weekstartdate = dateinfo.startDate;
this.datearr.weekenddate = dateinfo.endDate;
// console.log(this.datearr, "--------------本周时间");
//这里使用getTime()方法是为了换成时间戳,和点击的那天去比较
this.currentWeektime.starttime = new Date(
this.datearr.weekstartdate
).getTime();
this.currentWeektime.endtime = new Date(
this.datearr.weekenddate
).getTime();
// console.log(this.currentWeektime, "-this.currentWeektime");
},
2.判断点击的时间是否在本周之内
//row.mydate是点击那天的时间,换算成时间戳
let currentday = new Date(row.mydate).getTime();
//判断是否小于等于结束时间,且大于等于开始时间,如果是,是本周内的时间,否则不是本周内的时间;
if (
currentday <= this.currentWeektime.endtime &¤tday >= this.currentWeektime.starttime
) {
//xxxxxxx去做处理
} else {
//xxxxxxx去做处理
}