vue element el-date-picker picker-options实现特定日期范围内可选择disabledDate

这篇博客详细介绍了如何在Element UI的日期选择器组件中禁用特定日期范围以及周六周日的选择。通过设置`disabledDate`属性,可以实现根据时间One和时间Two限制日期范围,以及利用JavaScript的`getDay()`方法来禁止周六和周日的选择。示例代码展示了在`data`和`methods`中定义禁用逻辑的不同方式,并提供了在不同场景下应用的示例。

官方文档给出的示例:

<el-date-picker
   v-model="value2"
   align="right"
   type="date"
   placeholder="选择日期"
   :picker-options="pickerOptions">
 </el-date-picker>

这是禁用当天之后的时间不可选择(disabledDate中,time.getTime() 的范围是禁用的时间范围)

export default {
    data() {
      return {
			pickerOptions: {
			 	disabledDate(time) {
			   		return time.getTime() > Date.now(); 
			   	}
			 }
		}
	}
}

如果想要特定的时间内可以选择,其他不可选择,例如:timeOne(最早时间)、timeTwo(最晚时间)

export default {
    data() {
      return {
			pickerOptions: {
			 	disabledDate: (time) => {
          			return  time.getTime() < new Date(this.timeOne).getTime()-8.64e7 || time.getTime() > new Date(this.timeTwo).getTime()
        		}
			 }
		}
	}
}

如果timeOne:2021-01-21、timeTwo:2021-02-21,那么这个就只有2021-01-21~2021-02-21范围内的日期可以选择。

如果有些逻辑在data里处理不了 想在methods处理:

methods:
disabledDate(time) {
   if (this.title === 'new') {
      return time.getTime() < Date.now() + 8.64e7 * 3;
   } else {
     return time.getTime() < new Date(this.planForm.timevalue[0]).getTime() - 8.64e7;
   }
 },

在html里

<el-date-picker  
	type="daterange" format="yyyy-MM-dd"
	range-separator="" start-placeholder="开始日期"
	value-format="yyyy-MM-dd" 
	end-placeholder="结束日期"
	:picker-options="{disabledDate}">
</el-date-picker>

或者

data:
pickerOptions: {
   disabledDate: this.disabledGetTime
 }
 
 methods:
 disabledGetTime(time) {
     return time.getTime() < Date.now() - 8.64e7 || 
     time.getTime() > new Date(this.uptimed).getTime() - 8.64e7
   },

禁止周六周日

disabledDate(time) {
      return (
        [0,6].includes(time.getDay())
      );
    },
Vue 3 中使用 `el-date-picker` 组件时,可以通过 `picker-options` 属性实现自定义配置,例如限制可选日期范围、设置快捷选项等。该组件是 Element Plus 提供的日期选择器,支持多种配置方式和丰富的交互体验。 ### 配置 picker-options 的基本结构 `picker-options` 是一个对象,其中可以包含多个属性用于控制日期选择器的行为。以下是一些常用的配置项: - `disabledDate`: 控制某些日期不可选。 - `shortcuts`: 设置快捷日期选择选项。 - `onPick`: 在用户选择日期时触发的回调函数。 ```vue <template> <el-date-picker v-model="selectedDate" type="date" placeholder="选择日期" :picker-options="pickerOptions" /> </template> <script> import { ref } from 'vue'; export default { setup() { const selectedDate = ref(''); const pickerOptions = { disabledDate(time) { // 禁用今天之后的日期 return time.getTime() > Date.now(); }, shortcuts: [ { text: '今天', value: new Date(), }, { text: '昨天', value: () => { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24); return date; }, }, { text: '一周前', value: () => { const date = new Date(); date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); return date; }, }, ], onPick({ maxDate, minDate }) { console.log('选择的最小日期:', minDate); console.log('选择的最大日期:', maxDate); }, }; return { selectedDate, pickerOptions, }; }, }; </script> ``` ### 自定义功能详解 - **禁用特定日期**:通过 `disabledDate` 函数,可以传入一个时间参数并返回布尔值来决定是否禁用该日期。例如,上述代码中将未来日期设为不可选。 - **快捷选项**:`shortcuts` 允许用户快速选择预定义的时间点。每个快捷选项包含 `text`(显示文本)和 `value`(日期值或生成日期的函数)。 - **选择事件监听**:`onPick` 回调可以在用户选择日期时执行操作,比如记录日志或更新其他组件的状态。 ### 注意事项 - `v-model` 用于绑定当前选中的日期值。 - 如果需要支持多语言,确保引入了 Element Plus 的国际化支持。 -Vue 3 中,建议使用 Composition API 来组织逻辑,如示例中使用 `ref` 和 `setup()` 方法。 [^1] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值