el-datepicker限制日期选择范围

问题:使用常规方法限制日期以后,发现被限制日的前一天不能选择,代码如下

javascript 复制代码
<el-date-picker
  v-model="aaa"
  type="daterange"
  size="mini"
  range-separator="至"
  start-placeholder="开始日期"
  end-placeholder="结束日期"
  :default-time="['00:00:00', '23:59:59']"
  :picker-options="pickerOptionsEnd"
>
</el-date-picker>
pickerOptionsEnd: {
  disabledDate: time => {
    return time.getTime() > new Date()
  }
},

使用上述方式实现发现有问题,比如今天9号,实际显示禁用的范围是10号及以后,实际选择的时候发现9号不可选。

后来发现,是限制了 :default-time="'00:00:00', '23:59:59'" 导致出现了问题,因为default-time 为选中的日期设置一个具体的时分秒,如果这个时间点超过了函数中定义的"当前时间"(精确到毫秒),就可能产生冲突,所以解决方案如下:

通过计算"今天 23:59:59"的时间戳作为截止点,确保设置了 default-time 为 '23:59:59' 的今天日期依然在允许范围内

最终解决方案:

javascript 复制代码
pickerOptionsEnd: {
  disabledDate: time => {
    return time.getTime() > new Date().setHours(23, 59, 59, 999)
  }
},
相关推荐
kyriewen5 分钟前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
IT_陈寒19 分钟前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
山河木马1 小时前
矩阵专题2-怎么创建视图矩阵(uViewMatrix)
javascript·webgl·计算机图形学
小林攻城狮1 小时前
使用 Transport 节流解决 Vercel AI SDK 流式渲染卡死问题
前端·react.js
前端缘梦1 小时前
告别 TS 运行时类型漏洞!Zod 完整入门实战教程(前端 / 全栈必备)
前端·react.js·全栈
the_answer1 小时前
Webpack vs Vite 深度对比分析
前端·webpack
转转技术团队2 小时前
验证码识别实战:前端不写页面,改训模型了?
前端
MomentYY2 小时前
Temperature:AI 的“脑洞旋钮”
前端·llm·ai编程
远航_2 小时前
OpenSpec 完整详细介绍
前端·后端
召钱熏2 小时前
状态枚举正确≠渲染正确:一个语音按钮的状态机边界修复实录
android·前端