el-date-picker如何设置禁用日期时间

element官方API没有具体给出禁用范围,看了网上一些代码,然后捣鼓一下就好了,可以同时禁用日期和时间。首先贴效果:
在这里插入图片描述
然后代码如下,(我禁用的日期是今天以前的,时间范围是22:00到02:00)

index.vue
<el-date-picker
                  class="dateClass"
                  v-model="aa"
                  type="datetime"
                  :picker-options="pickerOptions"
                  placeholder="22点以后"
                  style="width:100%">
                </el-date-picker>


  data() {
     return {
         aa: '',
         pickerOptions: {
            // 限制时间
            selectableRange: ['22:00:00 - 23:59:59','00:00:00 - 02:00:00'],
           // 限制日期
            disabledDate: this.disabledDate
        },
     }
  } ,
  methods: {
    disabledDate(time) {
        return time.getTime() < Date.now() - 8.64e7  
   }
}
### 动态设置 `el-date-picker` 组件中禁用日期的方法 在 Element UI 的 `el-date-picker` 中,可以通过配置 `picker-options.disabledDate` 属性来实现对特定日期的选择限制。此属性接受一个函数作为参数,在这个函数内部可以根据业务逻辑判断并返回布尔值以决定是否禁用某天。 对于动态调整可选范围的需求,则可以在 Vue 实例的数据对象里定义相应的规则变量,并通过监听事件或其他方式改变这些条件从而达到实时更新的效果[^1]。 下面给出一段具体的代码实例展示如何基于已有数据源动态设定不可选取的日历日: ```html <template> <div class="example"> <!-- 使用绑定的方式传递 disabledDate 方法 --> <el-date-picker v-model="value" type="date" placeholder="Pick a day" :disabledDate="disableSomeDays" /> </div> </template> <script> export default { data() { return { value: '', // 存储用户选择的结果 unavailableDates: ['2023-09-08', '2023-09-15'] // 不可用的具体日期列表 }; }, methods: { disableSomeDays(time) { const dateStr = this.formatDate(time); // 判断传入的时间是否存在于预设的不可用日期数组内 return this.unavailableDates.includes(dateStr); }, formatDate(date) { let d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear(); if (month.length < 2) month = '0' + month; if (day.length < 2) day = '0' + day; return [year, month, day].join('-'); } } }; </script> ``` 上述例子展示了怎样利用 JavaScript 函数配合 `formatDate()` 辅助工具处理时间戳转换成字符串形式以便于比较操作,进而完成对某些固定日子实施访问控制的功能[^3]。 如果涉及到更复杂的场景比如两个关联的时间区间(即开始时间和结束时间),则还需要额外考虑两者之间的约束关系,确保不会出现不合理的情况发生。此时同样依赖于 `pickerOptions` 下的相关配置项以及自定义验证逻辑共同作用下达成目标[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值