elementUI el-date-picker 时间范围设置 固定时间段可选 配置

废话不多说  上代码

这是Vue2版本的,Vue3+ElementPlus版本Vue3+ElementPlus el-date-picker 时间范围设置 固定时间段可选 配置_天渺工作室的博客-优快云博客_vue设置时间段

<el-date-picker
                            v-model="startTimeAndEndTime"
                            @change='pickerTime'
                            type="datetimerange"
                            format="yyyy-MM-dd HH:mm:ss"
                            value-format="yyyy-MM-dd HH:mm:ss"
                            range-separator="-"
                           :picker-options="pickerOptions"
                            :default-time="['00:00:00','23:59:59']"
                            
                            start-placeholder="开始日期"
                            end-placeholder="结束日期">
    </el-date-picker>

官方文档自带的pickerOptions 事件 

...


 data() {
    return {
        
       
        pickerOptions:{
          
           disabledDate: (time) => {
       
          // 如果函数里处理的数据比较麻烦,也可以单独放在一个函数里,避免data数据太臃肿
          return this.dealDisabledDate(time);
        }
        },

}
}





methods: {
            dealDisabledDate (time) {
            // time 是一个new Date数据
            
            if(new Date(time).getTime()>new Date().getTime()){
                    return time.getTime() >= (new Date().getTime()) ;//时间范围必须是时间戳
            }else{
                return time.getTime() < Date.now() - 2*8.64e7;//8.64e7就是一天的时间戳 24*60*60*1000   两天之内 根据自己需求来定
            }
            
            },
}

...

这样思路就比较明确了 只要时间戳大小判断好  就能固定时间选择器里面的可选范围

### el-date-picker 设置固定时间范围 (时分秒) 配置方法 为了实现 `el-date-picker` 组件中设置固定的时分秒选择范围,可以利用 `picker-options` 属性中的 `disabledHours`, `disabledMinutes`, 和 `disabledSeconds` 方法来控制可用的选择项。这些函数允许动态地禁用某些小时、分钟或秒钟。 对于更复杂的场景,比如设定一个具体的开始时间和结束时间作为边界条件,在 Vue.js 或者 Vue 3 结合 Element Plus 使用的情况下,可以通过如下方式配置: #### HTML模板部分 ```html <template> <div class="example"> <el-date-picker v-model="value" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" align="right"> </el-date-picker> </div> </template> ``` #### JavaScript逻辑处理 ```javascript <script setup> import { ref, reactive } from &#39;vue&#39;; const value = ref([]); // 存储选中的时间区间 // 定义 picker options 来限制可以选择的时间段 const pickerOptions = reactive({ shortcuts: [{ text: &#39;最近一周&#39;, onClick(picker) { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); picker.$emit(&#39;pick&#39;, [start, end]); } }], disabledDate(time) { return time.getTime() > Date.now(); // 不允许选择今天之后的日期 }, disabledHours(hour) { if ((hour >= 9 && hour <= 18)) return false; return true; }, disabledMinutes(minute) { if ([0, 15, 30, 45].includes(minute)) return false; return true; }, disabledSeconds(second) { if ([0, 30].includes(second)) return false; return true; } }); </script> ``` 上述代码片段展示了如何通过 `picker-options` 来限定用户仅能在每天上午九点到下午六点之间以及特定的分钟数(即每十五分钟一次)、整半点秒数内做出选择[^1]。 此外,还可以进一步调整 `disabledDate` 函数来自定义哪些天不可选,例如不允许选择过去的日期或者未来的某段时间内的日期等需求都可以在此基础上扩展实现。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值