当前位置: 首页 > news >正文

el-date-picker 组件限制禁止选择当前时间之前的时间

页面代码

<el-date-picker
            v-model="xxx.startTime"
            type="datetime"
            placeholder="请选择开始时间"
            value-format="YYYY-MM-DD HH:mm:ss"
            clearable
            :disabledDate="disabledDateFn"
            :disabled-hours="disabledHours"
            :disabled-minutes="disabledMinutes"
            :disabled-seconds="disabledSeconds"
            :default-value="new Date()"
          >
</el-date-picker>

核心逻辑

主要对日期与时分秒逐级分离限制,其中分秒需要注意时、分选择的变化,当分钟大于当前分时应放开所有秒的选择,分钟选择限制同理。

const disabledDateFn = (time) => {
  //比当前时间小的时间禁用(返回false则禁用)
  return time.getTime() < Date.now() - 24 * 3600 * 1000;
};

const disabledHours = () => {
  const a = [];
  for (let i = 0; i < 24; i++) {
    // 限制 之前 < / 之后 >
    if (new Date().getHours() <= i) continue;
    a.push(i);
  }
  return a;
};
const disabledMinutes = (hour) => {
  // 选择时大于当前时,所有分均可选择
  if (hour > new Date().getHours()) {
    return [];
  }
  const a = [];
  for (let i = 0; i < 60; i++) {
    // 限制 之前 < / 之后 > 
    if (new Date().getMinutes() <= i) continue;
    a.push(i);
  }
  return a;
};
const disabledSeconds = (hour, mins) => {
  // 选择时分大于当前时分时,所有秒均可选择
  if (hour > new Date().getHours()) {
    return [];
  } else if (hour == new Date().getHours() && mins > new Date().getMinutes()) {
    return [];
  }
  
  const a = [];
  for (let i = 0; i < 60; i++) {
    // 限制 之前 < / 之后 > 
    if (new Date().getSeconds() <= i) continue;
    a.push(i);
  }
  return a;
};

相关文章:

  • 鸿蒙开发深入浅出04(首页数据渲染、搜索、Stack样式堆叠、Grid布局、shadow阴影)
  • 05. Springboot admin集成Actuator(一)
  • qt:多元素类,容器类,布局类
  • 大白话javascript如何通过原型链实现对象的继承,并指出这种继承方式的优缺点
  • JVM 高级面试题及答案整理,最新面试题
  • Win32/ C++ 简易对话框封装框架(多语言, 通知栏菜单, 拖拽文件处理)
  • Logback:强大的Java日志框架
  • 大模型面试问题准备
  • 【idea问题排查技巧】
  • C++中数学函数的使用方法
  • Python游戏编程之赛车游戏6-5
  • ESP32学习笔记_Bluetooth(3)——GATT
  • 计算机毕业设计SpringBoot+Vue.js足球青训俱乐部管理系统(源码+文档+PPT+讲解)
  • vue从入门到精通(十三):收集表单数据
  • [前端开发]vue-devtools6.5.0及历史版本下载
  • 【大模型系列篇】如何解决DeepSeek-R1结构化输出问题,使用PydanticAl和DeepSeek构建结构化Agent
  • 【够用就好006】-PC桌面管理ECS服务器的实操步骤
  • 20250212:https通信
  • 网络基础I
  • Python游戏编程之赛车游戏6-4
  • 民制作网站价格/网络推广怎么做效果好
  • 自己做的手机网站怎么加入小程序/seo高端培训
  • 成都网站制作公司电话/发广告推广平台
  • 母婴网站模板/厦门最快seo
  • 网站优化外包公司/seo软件定制
  • php 网站 项目/能打开的a站