el-date-picker设置时间范围picker-options使用

el-date-picker使用的时候遇到设置范围,例如七天范围

  <el-date-picker
                  clearable
                  v-model="recognitionTime"
                  type="datetimerange"
                  range-separator="至"
                  start-placeholder="开始日期"
                  end-placeholder="结束日期"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  :picker-options="pickerOptions"
                >
                </el-date-picker>

 配置项

      pickerOptions: {
        onPick: (time) => {
          // 选择开始时间未选择结束时间
          if (time.minDate && !time.maxDate) {
            this.timeOptionRange = time.minDate;
          }
          if (time.maxDate) {
            this.timeOptionRange = null;
          }
        },
        disabledDate: (time) => {
          let timeOptionRange = this.timeOptionRange;
          let secondNum = 1000 * 60 * 60 * 24 * 7;
          if (!timeOptionRange) {
            return time.getTime() > Date.now() - 8.64e6;
          }
          if (timeOptionRange.getTime() + secondNum > Date.now() - 8.64e6) {
            return (
              time.getTime() > Date.now() - 8.64e6 ||
              time.getTime() < timeOptionRange.getTime() - secondNum
            );
          }
          return (
            time.getTime() > timeOptionRange.getTime() + secondNum ||
            time.getTime() < timeOptionRange.getTime() - secondNum
          );
        },
      },

 

### 关于 `el-date-picker` 组件中的 `picker-options` 在 Vue 3 中使用 Element Plus 的 `el-date-picker` 组件时,可以通过配置 `picker-options` 来自定义日期选择器的行为。此属性允许设置一些特定的选项来控制可选范围、快捷方式以及其他行为。 #### 自定义不可选日期 通过指定函数返回布尔值的方式来自定义哪些天是禁用状态: ```javascript const disabledDate = (time) => { const date = new Date(); // 禁用今天之后的所有日期 return time.getTime() > date.setHours(0, 0, 0, 0); }; ``` #### 设置快捷操作项 可以为用户提供一组预设的时间区间供快速选择: ```javascript const shortcuts = [ { text: '最近一周', value: () => { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); return [start, end]; }, }, { text: '最近一个月', value: () => { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); return [start, end]; }, } ]; ``` #### 完整示例代码 下面是一个完整的例子展示如何在模板中应用这些配置: ```vue <template> <div class="block"> <span class="demonstration">带有快捷选项</span> <el-date-picker v-model="value" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" > </el-date-picker> </div> </template> <script setup> import { ref } from "vue"; // 可选参数对象 const pickerOptions = { shortcuts, disabledDate, }; // 数据绑定变量 let value = ref(''); </script> ``` [^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾宝玉单臂擒方腊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值