vue dayjs
// main.js
// 全局注册dayjs
const dayjs = require('dayjs')
const isBetween = require('dayjs/plugin/isBetween') // 引入插件
dayjs.extend(isBetween)
Vue.prototype.$dayjs = dayjs
@params {任意时间格式}开始时间
@params {任意时间格式}结束时间
@params {任意时间格式}选择的星期
checkWeekTool(开始时间,结束时间,选择的星期) {
const START_TIME = this.$dayjs(开始时间).valueOf() // 开始时间:时间戳
const END_TIME = this.$dayjs(结束时间).valueOf() // 结束时间:时间戳
const START_WEEK = parseFloat(this.$dayjs(START_TIME).day()) // 开始时间的星期:Number
const CHOOSE_WEEK = parseFloat(选择的星期) // 选择的星期:Number
let nextChooseTime // 时间段内 下一个选择的星期:时间戳
// 元祖映射关系
const MAP = [
[
() => CHOOSE_WEEK > START_WEEK,
() => { nextChooseTime = this.$dayjs(START_TIME).add(CHOOSE_WEEK - START_WEEK, 'day').valueOf() }
],
[
() => CHOOSE_WEEK < START_WEEK,
() => { nextChooseTime = this.$dayjs(START_TIME).add(7 - START_WEEK + CHOOSE_WEEK, 'day').valueOf() }
],
]
const TARGET = MAP.find(m => m[0]())
if (TARGET) {
TARGET[1]()
} else {
nextChooseTime = this.$dayjs(START_TIME).valueOf()
}
return this.$dayjs(nextChooseTime).isBetween(START_TIME, END_TIME, null, '[]')
}