######vue
element ui 周日期选择组件选中时,默认返回当前行的第二列时间,
dtArr = []
week = ''
// 日期change事件
change(val) {
this.getOs(val) // 获取当前周 周一、周日
this.getWeek(this.dtArr[1])
}
// 获取时间所属的周的周一和周日
getOs(val) {
const week = val.getDay()
const dys = week ? week - 1 : 6
val.setDate(val.getDate() - dys)
const qytO = new Date(val.getTime())
const qytS = new Date(qytO.getTime() + 24 * 60 * 60 * 1000 * 6)
this.dtArr = [qytO, qytS]
return this.dtArr
}
// 计算val所属当前年的第几周,计算方法 2020-12-28到2021-1-3 属于 2021年第一周(可修改)
getWeek(val) {
// 获取当前年第一个月的第一天
const dt1 = new Date(val)
dt1.setMonth(0)
dt1.setDate(1)
const rq = val - dt1
const days = Math.ceil(rq / (24 * 60 * 60 * 1000))
const num = ceil(days / 7)
this.week = num
return num
}
// 生成显示日期
createDt() {
const dtO = this.transformDt(this.drArr[0])
const dtS = this.transformDt(this.drArr[1])
const inpCn = `${dtO}~${dtS} ${this.dtArr[1].getFullYear()}年 第${this.week}周`
return inpCn
} // 2020-12-28~2021-1-3 2021年第一周
//
transformDt(val) {
const dt = new Date(val)
return `${dt.getFullYear()}-${dt.getMonth()+1}-${dt.getDate()}`
}