el-date-picker 控制可选日期范围 时间选择只显示小时 并控制小时可选范围

现在 需要做一个 时间选择器  ,可以根据 小时(同时选天和小时) 和天 和月,节假日等类型控制日历的选择样式

解决  根据上面的类型切换 type 为 datetime,date,和month来解决显示问题,

功能点1.

重大节假日 就是只有节假日可选 type 为 date  控制可以选择的具体日期(例如五一 是5.1-5.5 5天可选)

功能点2.

小时 需求是  时间选择器 可以同时选择日期 和时间,只可以选择小时并且 分和秒 不显示

解决功能点1

理解disabledDate 设置值  为不可以选的时间

重大节假日需要后台 或者你自己写好可以选择的日期, obj里面的data为可选日期集合  dayjs(date).format("YYYYMMDD")只是对日期就行格式化方便对比 是否包含

效果

  

用该方式 解决了 控制日期可选范围问题

解决功能点2

先看一下 el-date-picker   因为要同时出现日期和时间选择 所以type选择"datetime"   看一下默认样式

设置format 为  yyyy-MM-dd  此时 时间 会显示到分钟可选 没有了 秒

这里还需要 把分钟可选去掉,尝试很多设置方式没有解决,最终解决是通过隐藏 分钟模块控件

这样解决了 只显示到小时  的需求 效果如下

现在还有一个问题 就是 控制今天 现在小时之后的 小时不可选 

这样解决了当前之后的小时不可选  但是这时候引发了新的问题    例如今天10月2号 14点  那么 15,16等以后不能选是正确的   当你选择到其他日期 例如 10月1 日   应该是所有 小时可选  但是现在的话  也是不能选的

这时候需要动态的控制  上图中 selectableRange 的值 ,但是这里有格式要求不能动态用this.xxxx来设置或者不生效

所以  写了两个  expireTimeOption

根据用户选择的是否为当天  来切换 选择范围。 从而解决了该问题

这样解决了  时间选择显示到小时  ,并且可以控制小时显示范围的问题,

效果图

动态设置el-date-picker可选日期范围可以通过设置picker-options中的disableDate属性来实现。具体的实现方法是,在change事件中动态改变picker-options中的disableDate属性,使其返回需要禁用的日期列表。 相关代码示例: ```javascript <template> <el-date-picker v-model="date" :picker-options="pickerOptions" @change="updateDisableDates" ></el-date-picker> </template> <script> export default { data() { return { date: '', pickerOptions: { disableDate: date => { // 返回需要禁用的日期列表 const disabledDates = [ new Date('2021-01-01'), new Date('2021-01-02'), new Date('2021-01-03') ]; return disabledDates.some(disabledDate => this.isSameDay(date, disabledDate) ); } } }; }, methods: { updateDisableDates() { // 动态修改picker-options中的disableDate属性 this.pickerOptions.disableDate = date => { const disabledDates = [ new Date('2021-02-01'), new Date('2021-02-02'), new Date('2021-02-03') ]; return disabledDates.some(disabledDate => this.isSameDay(date, disabledDate) ); }; }, isSameDay(date1, date2) { // 判断两个日期是否是同一天 return ( date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate() ); } } }; </script> ``` 以上代码中,我们通过在change事件中动态修改picker-options中disableDate属性的方法来实现动态设置el-date-picker可选日期范围。在最初的picker-options中,我们设置了一些初始的禁用日期,然后在change事件中更新了disableDate属性的值,使其返回新的禁用日期列表。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值