el-date-picker限制可选时间范围

1、只能选择周一至周五的08:00:00 - 18:00:00

             <el-date-picker
                v-model="value"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择结束时间"
                :picker-options="{
                  selectableRange: ['08:00:00 - 18:00:00'],
                  disabledDate: (date) => {
                    if (date.getDay() === 0 || date.getDay() === 6) {
                      return true;
                    } else {
                      return false;
                    }
                  },
                }"
              >
             </el-date-picker>

2、只能选择当前日期之前的日期范围

            <el-date-picker
              v-model="value"
              type="daterange"
              range-separator="至"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              value-format="yyyy-MM-dd HH:mm:ss"
              format="yyyy-MM-dd"
              :picker-options=" {
                disabledDate: (time) => {
                  return time.getTime() > Date.now() - 1 * 24 * 60 * 60 * 1000;
                }
              }"
            >

### 设置 `el-date-picker` 组件中的禁用日期 为了在 `el-date-picker` 中设置特定日期不可选,可以利用其内置属性 `:disabled-date` 并绑定到一个自定义函数。此函数接收 JavaScript 的 `Date` 对象作为输入参数,并返回布尔值来决定对应日期是否应该被禁用。 对于简单的场景,比如想要禁用未来的日期: ```javascript const disabledFutureDates = (date) => { return date.getTime() > Date.now(); }; ``` 如果目标是阻止用户选择过去的日期,则调整条件表达式的逻辑方向即可[^3]。 当涉及到更复杂的业务需求时——例如基于两个动态变化的时间点(即起始日与终止日),则可以通过比较传入的 `date` 参数同这两个边界来进行控制[^2]。 下面给出一段综合性的代码片段用于展示如何实现上述功能,在这段代码里还包含了国际化支持以及样式定制等内容[^4]。 ```html <template> <div class="demo"> <el-date-picker v-model="time" type="daterange" :range-separator="$t('common.to')" :start-placeholder="$t('common.stime')" :end-placeholder="$t('common.etime')" style="width: 300px;" value-format="yyyy-MM-dd" :picker-options="pickerOptions" > </el-date-picker> </div> </template> <script> export default { data() { return { time: '', pickerOptions: { onPick({ maxDate, minDate }) { if (maxDate && !minDate) { this.maxDate = null; } this.minDate = minDate || maxDate; }, disabledDate(time) { if (this.minDate) { let curDayStart = new Date(this.minDate).setHours(0, 0, 0, 0); return ( time.getTime() < new Date(curDayStart).getTime() || time.getTime() > Date.now() ); } else { return time.getTime() > Date.now(); } } } }; } }; </script> ``` 通过这种方式能够灵活地满足不同应用场景下的日期选取限制要求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值