【已解决】el-date-picker type=“datetime“限制(动态)可选时间范围,精确到分钟!!!

文章目录

Vue2 + element ui

实现效果

code

html 复制代码
<template>
  <el-date-picker
    ref="datePicker"
    v-model="date"
    type="datetime"
    :picker-options="pickerOptions"
    placeholder="请选择日期时间"
    format="yyyy-MM-dd HH:mm"
    value-format="yyyy-MM-dd HH:mm"
    @change="changeTime"
  >
  </el-date-picker>
</template>

<script>
import dayjs from 'dayjs'
export default {
  data() {
    return {
      date: '',
      startTime: '2025-11-09 11:10:00',
      endTime: '2025-11-29 18:20:00',
    };
  },

  computed: {
  // 由于 onPick 方法只适用于 datetimerange
  // 所以在此使用 computed的方式来实现;
  // 当每次选中日期,重新计算禁用小时(selectableRange)
    pickerOptions() {
      const selectableRange = this.getSelectableRange(this.date)
      return {
        disabledDate: (date) => {
          const s = new Date(this.startTime).getTime()
          const e = new Date(this.endTime).getTime()
          return date.getTime() < s - 8.64e7 || date.getTime() > e
        },
        selectableRange
      }
    }
  },

  methods: {
    getSelectableRange(date) {
      if (dayjs(date).isSame('2025-11-09 11:00:00',  'day')) {
        return '11:00:00 - 23:59:59'
      }
      if (dayjs(date).isSame('2025-11-29 18:00:00',  'day')) {
        return '00:00:00 - 18:20:00'
      }
      return '00:00:00 - 23:59:59'
    },
    changeTime(date) {
      if (dayjs(date).isBefore(this.startTime, 'minutes')) {
        this.date = this.startTime
      }
      if (dayjs(date).isAfter(this.endTime, 'minutes')) {
        this.date = this.endTime
      }
    }
  },
};
</script>
相关推荐
代码搬运媛2 小时前
Jest 测试框架详解与实现指南
前端
counterxing3 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
wangqiaowq3 小时前
windows下nginx的安装
linux·服务器·前端
之歆4 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜4 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
Maimai108084 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
candyTong4 小时前
Claude Code 的 Edit 工具是怎么工作的
javascript·后端·架构
kyriewen6 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
humcomm6 小时前
元框架的工作原理详解
前端·前端框架
canonical_entropy6 小时前
Attractor Before Harness: AI 大规模开发的方法论
前端·aigc·ai编程