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)
  }
},
相关推荐
玉梅小洋3 分钟前
Chrome设置链接自动跳转新标签页而不是覆盖
前端·chrome
EndingCoder9 分钟前
反射和元数据:高级装饰器用法
linux·运维·前端·ubuntu·typescript
Marshmallowc13 分钟前
React性能优化:useState初始值为什么要用箭头函数?深度解析Lazy Initialization与Fiber机制
前端·react.js·性能优化·前端框架·react hooks
喵喵喵小鱼13 分钟前
arcgis JavaScript api实现同时展示多个撒点气泡
开发语言·javascript·arcgis
Coder_Boy_16 分钟前
基于SpringAI的在线考试系统-试卷管理模块完整优化方案
前端·人工智能·spring boot·架构·领域驱动
摇滚侠22 分钟前
Node.js 零基础教程,Node.js 和 NPM 的安装与使用
前端·npm·node.js
谢尔登25 分钟前
Vue3架构设计——调度系统
前端·javascript·vue.js
码农研究僧27 分钟前
ruoyi+vue2的前端Demo(不分页、前端分页、后端分页)
前端·vue2·ruoyi
Kratzdisteln35 分钟前
【1902】0121-1 Dify工作流节点详细配置(方案B最终版)
java·前端·javascript
第7个前端37 分钟前
elementplus相同ElMessage只显示一个
前端