element ui时间范围选择器picker-options跟default-time冲突问题

业务需求,时间范围选择器默认时间昨天到前一个月,无法选择超过今天的日期;时间范围可以用picker-options来实现,默认时间的话在mounted生命周期里处理一下就行。
问题:用时间搜索的时候需要传开始-结束时间,我们的选择器是yyyy-mm-dd的,但是传接口的时候要传yyyy-MM-dd hh:mm:ss的,意思就是要传参数的话需要2022-01-01 00:00:00跟2022-01-30 23:59:59。我在el-date-picker加上:default-time="[‘00:00:00’, ‘23:59:59’]",选择时间是可以达到上述的条件,但是却无法选择当天的时间了,原因:pickerOptions属性只能选择此刻及之前的时间。当你选择当天时,default-time会默认结束时间为’23:59:59’,你的结束时间属于之后的时间范围,与 pickerOptions属性冲突。因此无法点击确认按钮。
解决方法:在main里加上

// 日期格式化
Date.prototype.Format = function (format) {   //js中没有format方法,需要自己挂载
 var args = {
   "M+": this.getMonth() + 1,
   "d+": this.getDate(),
   "h+": this.getHours(),
   "m+": this.getMinutes(),
   "s+": this.getSeconds(),
   "q+": Math.floor((this.getMonth() + 3) / 3), 
   "S": this.getMilliseconds()
 };
 if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "").substring(4 - RegExp.$1.length));
 for (var i in args) {
   var n = args[i];
   if (new RegExp("(" + i + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substring(("" + n).length));
 }
 return format;
};

你的:picker-options=“pickerOptions”

      pickerOptions: {
       disabledDate(time) {
         let current_time = new Date().Format("yyyy-MM-dd") + " 23:59:59";
         let t = new Date(current_time.replace(/-/g, "/")).getTime();   //此处转换-为/是为了兼容ie,ie在转换时间戳时不支持2022-01-07格式
         return time.getTime() > t;
       },
     },
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值