当前位置:   article > 正文

【vue】elementui中,el-date-picker组件只能选择当前年份中的日期_年选择器只能看得今年以后的日期

年选择器只能看得今年以后的日期

讲解需求:

        当点击的日期中,只能限定在你点击的年份范围内,不得跨年。

举个例子:

         首次点击的开始时间是2022-12-10,那么结束时间不能在2023年或者2021年,只能是2022年范围内的

 讲解过程:

  • 实现前提

        1.需获取到开始时间的年份

        2.开始时间年份的第一天,开始时间年份的最后一天

  • 实现步骤

        第一步,运用组件中的picker-options属性的onPick函数,可以获取当前选择的年份

onPick:({maxDate,minDate}) =>{}); //拿到minDate的值就是年份

        第二步,需运用到js的new Date()方法,正好讲解一下

 new Date();是转为标准时间 -- Sat Jan 01 2022 00:00:00 GMT+0800 (中国标准时间)

getFullYear();根据标准时间转化成月份

getTime();根据标准时间转化从时间戳 

  1. let year = minDate.getFullYear();//当前时间
  2. let startTime = new Date(year,0);//选中当前时间的开始时间
  3. let endTime = new Dte(startTime.getFullYear()+1,0);//选中当前时间的次年1月
  4. //组件需要的是时间戳
  5. this.start = startTime.getTime();
  6. this.end = endtime.getTime()-1;//-1就是12月的最后一天的时间戳

 最终,这是操作前提,还需设置禁用状态...

disabledDate:(time)=>{//做判断}

  1. pickerDisabled: {
  2. onPick:({maxDate,minDate}) =>{
  3. let year = minDate.getFullYear(); // 选中的当前年份
  4. const start = new Date(year,0);
  5. const end = new Date(start.getFullYear()+1,0) //年份的最后一个月+1,就是次年的1月
  6. //时间戳
  7. this.startDate = start.getTime()
  8. this.endDate = end.getTime()-1 //次年的1月1日,时间戳-1,就是12月最后一天的时间戳
  9. if(maxDate){ //重新选择时间,当前时间清空
  10. this.startDate = '';
  11. this.endDate = '';
  12. }
  13. },
  14. disabledDate: (time) => {
  15. if(!this.endDate && !this.startDate){
  16. return time.getTime() < this.startDate || time.getTime() > this.endDate;
  17. }
  18. }
  19. }

 结语:

        撒花✿

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/97578
推荐阅读
相关标签
  

闽ICP备14008679号