el-date-picker时间控制范围为过去时间不可选

javascript 复制代码
<el-date-picker 
    :picker-options="startPickerOptions()" 
    value-format="yyyy-MM-dd HH:mm:ss" 
    v-model="form.applyFixPlan" 
    type="datetime" 
    placeholder="选择日期时间">
</el-date-picker>

在method中定义startPickerOptions()

this.$dayjs是Day.js的封装
Day.js中文网

一天的毫秒数为 24*3600*1000= 86400000 = 8.64*10的7次方 = 8.64e7

获取今日之前的日期- 用于今日(包含今日)日期之后不可选限制

Date.now() - 8.64e7

今日(不含今日)之后日期不可选

Date.now() - 8.64e6

javascript 复制代码
    startPickerOptions () {
      let dateYMD = this.$dayjs(this.form.applyFixPlan).format('YYYY-MM-DD')
      let dateNow = this.$dayjs().format('YYYY-MM-DD')
      let dateHMS = this.$dayjs().format('HH:mm:ss')
      let pickerDate = dateYMD === dateNow
      if (this.form.applyFixPlan != undefined) {
        return {
          //因为在选新日期的时候被禁用的时间没有更新,需要手动给赋值
          selectableRange: pickerDate? dateHMS + ' - 23:59:59' : '00:00:00 - 23:59:59',
          disabledDate: (time) => {
            //过去时间不可选
            return time.getTime() < Date.now() - 8.64e7;
          }
        }
      } else {
        // 初始默认 过去时间不可选
        return {
          selectableRange: dateHMS + ' - 23:59:59',
          disabledDate: (time) => {
            return time.getTime() < Date.now() - 8.64e7;
          }
        }
      }
    },
相关推荐
swipe3 分钟前
JavaScript 对象与属性描述符:从原理到实战
前端·javascript·面试
&活在当下&8 分钟前
Vue3 h函数用法详解
前端·javascript·vue.js
小贵子的博客15 分钟前
(vue3错误处理)has naming conflicts with other components, ignored.
前端·javascript·vue.js
木斯佳37 分钟前
前端八股文面经大全:字节跳动音视频前端一面·下(2026-03-03)·面经深度解析
前端·音视频·状态模式
西西学代码40 分钟前
Flutter---路由与导航
服务器·前端·javascript
XPoet1 小时前
AI 编程工程化:Rule——给你的 AI 员工立规矩
前端·后端·ai编程
热爱生活的五柒1 小时前
解决 npm install 一直在转圈的问题
前端·npm·node.js
xuansec2 小时前
【Web攻防】文件与目录安全漏洞详解:下载/删除/遍历/穿越实操指南
前端
Beginner x_u2 小时前
CSS 动画体系(二)—— Animation关键帧动画
前端·css·animation
T-shmily2 小时前
CSS Grid 网格布局(display: grid)全解析
前端·css