elementPlus使用 el-date-picker ,限制选择的开始日期和结束日期的差在7天范围内。

在使用el-date-picker时,想要以下需求:

  1. 选中第一个日期后(如:12月15日),第二个日期=第一个日期-7,或者第二个日期=第一个日期+7,即第二个日期选择范围如图:(前后7天可选)
  2. 只能选择今天以及今天之前的日期。
javascript 复制代码
  <el-date-picker
    v-model="value"
    type="daterange"
    range-separator="到"
    start-placeholder="开始时间"
    end-placeholder="结束时间"
    value-format="YYYY-MM-DD"
    @change="change"
    :disabled-date="disabledDate"
    @calendar-change="handleChange"
    @focus="handleFocus"
    :clearable="false"
  />
javascript 复制代码
const pickDay = ref()
const handleFocus = () => {
  pickDay.value = null
}
const limitTime = 1000 * 60 * 60 * 24 * 6
const disabledDate = (time: Date) => {
  if (pickDay.value) {
    return (
      time.getTime() < pickDay.value.getTime() - limitTime ||
      time.getTime() > pickDay.value.getTime() + limitTime ||
      time.getTime() > Date.now()
    )
  } else {
    return time.getTime() > Date.now()
  }
}
const handleChange = (val: Date[]) => {
  const [pointDay] = val
  pickDay.value = pointDay
}

或者使用dayJs,disabledDate 可以改为

javascript 复制代码
import dayjs from 'dayjs'
const disabledDateSeven = (time: Date) => {
  if (pickDay?.value) {
    return (
      time.getTime() < dayjs(pickDay.value.getTime()).subtract(6, 'day') ||
      time.getTime() > dayjs(pickDay.value.getTime()).add(6, 'day') ||
      time.getTime() > Date.now()
    )
  } else {
    return time.getTime() > Date.now()
  }
}

该方法可以解决,如:使用 el-date-picker,限制开始日期和结束日期差值为7,30天等需求。开始日期随着差值而变化。

如:只能选择当前选择日期的前一个月、后一个月。前七天和后七天。

相关推荐
anyup_前端梦工厂2 小时前
了解几个 HTML 标签属性,实现优化页面加载性能
前端·html
前端御书房2 小时前
前端PDF转图片技术调研实战指南:从踩坑到高可用方案的深度解析
前端·javascript
2301_789169542 小时前
angular中使用animation.css实现翻转展示卡片正反两面效果
前端·css·angular.js
风口上的猪20153 小时前
thingboard告警信息格式美化
java·服务器·前端
程序员黄同学3 小时前
请谈谈 Vue 中的响应式原理,如何实现?
前端·javascript·vue.js
爱编程的小庄4 小时前
web网络安全:SQL 注入攻击
前端·sql·web安全
宁波阿成4 小时前
vue3里组件的v-model:value与v-model的区别
前端·javascript·vue.js
柯腾啊5 小时前
VSCode 中使用 Snippets 设置常用代码块
开发语言·前端·javascript·ide·vscode·编辑器·代码片段
Jay丶萧邦5 小时前
el-select:有关多选,options选项值不包含绑定值的回显问题
javascript·vue.js·elementui
weixin_535854225 小时前
oppo,汤臣倍健,康冠科技,高途教育25届春招内推
c语言·前端·嵌入式硬件·硬件工程·求职招聘