ElementUI el-date-picker 校验问题

93 阅读1分钟

需求 日期选择器 后端哥们说只能传今天前30天的日期包含当天日期

这不so easy
//使用 picker-options 写个函数检验一下啦
 pickerOptions1: {
          disabledDate: (time) => {
          let tempTime = 3600 * 1000 * 24 * 30;
          let timer = new Date(new Date() - 8.64e7).getTime(); //转换时间戳(当前选中的日期);
          let maxTime = timer - tempTime; //前三十天可选
          return time.getTime() > new Date() || time.getTime() < maxTime; 
        },

image.png 到这里感觉没什么毛病 调试完接口 自测点击发现当天日期没有禁用却不能触发

chrome-capture-2024-6-24.gif

原因 : 当天日期获取的时间戳是现在当前时间的

处理 : 获取当天时间戳的最后一秒 这里我直接使用了dayjs

修改后的代码

//使用 picker-options 写个函数检验一下啦
   pickerOptions1: {
          disabledDate: (time) => {

          let tempTime = 3600 * 1000 * 24 * 30;
          let timer = new Date(new Date() - 8.64e7).getTime(); //转换时间戳(当前选中的日期);
          let maxTime = timer - tempTime; //前三十天可选
           //获取当天的最后一秒的时间戳
          const endOfDayTimestamp = dayjs().endOf('day').valueOf();
          return time.getTime() > endOfDayTimestamp || time.getTime() < maxTime
        },
      },