判断日期是否在所选时间段内

1,161 阅读1分钟

vue dayjs

// main.js
// 全局注册dayjs
const dayjs = require('dayjs')
const isBetween = require('dayjs/plugin/isBetween') // 引入插件
dayjs.extend(isBetween)
Vue.prototype.$dayjs = dayjs
    checkMonthTool() {
      const startTime = this.$dayjs(开始时间).valueOf() // 开始时间:时间戳
      const endTime = this.$dayjs(结束时间).valueOf() // 结束时间:时间戳
      const startDay = this.$dayjs(startTime).format('DD') // 开始时间的日期:时间戳
      const chooseDay = parseFloat(选择的日期) // 选择的日期:Number
      const chooseDayFormat = chooseDay < 10 ? '0' + chooseDay : chooseDay // 格式化<10的数字:String
      const daysInMonth = this.$dayjs(startTime).daysInMonth() // 月天数:Number
      let jointTargetTime

      if (chooseDay > daysInMonth) {
        const add1 = this.$dayjs(startTime).add(1, 'month').format('YYYY-MM') + '-' + chooseDayFormat
        if (this.$dayjs(add1).isBefore(endTime)) {
          return true
        } else {
          this.$message.error(`起止时间段内没有${chooseDay}号!`)
          return false
        }
      }

      if (chooseDay > startDay) {
        jointTargetTime = this.$dayjs(startTime).format('YYYY-MM') + '-' + chooseDayFormat
        return this.$dayjs(jointTargetTime).isBetween(startTime, endTime, null, '[]')
      } else if (chooseDay < startDay) {
        jointTargetTime = this.$dayjs(startTime).add(1, 'month').format('YYYY-MM') + '-' + chooseDayFormat
        return this.$dayjs(jointTargetTime).isBetween(startTime, endTime, null, '[]')
      } else {
        return true
      }
    },