Element Ui 日期选择器 使用value-format后日期限定范围失效

1.项目中要求,传给后台的时间格式为'2019-04-10'这样的格式,这个很好实现,el-date-picker上添加value-format="yyyy-MM-dd"即可;

2.日期限定范围要求:起始时间不能大于结束时间

实现代码:

template部分

       

          v-model="start"

          type="date"

          placeholder="选择起始日期"

          :picker-options="pickerOptionsStart"

          format="yyyy-MM-dd"

          value-format="yyyy-MM-dd"

        >

     

     

       

          v-model="end"

          type="date"

          placeholder="选择终止日期"

          :picker-options="pickerOptionsEnd"

          format="yyyy-MM-dd"

          value-format="yyyy-MM-dd"

        >

     

js部分:

export default {

  data() {

    return {

      //实现起始时间不能大于结束时间

      pickerOptionsStart: {

        disabledDate: time => {

          let endDateVal =this.formDate.end

          //修改后代码为:let endDateVal =new Date(this.formDate.end).getTime();

          if (endDateVal) {

            return time.getTime() > endDateVal;

          }

        }

      },

      pickerOptionsEnd: {

        disabledDate: time => {

          let beginDateVal =this.formDate.start

          //修改后代码为:let beginDateVal =new Date(this.formDate.start).getTime();

          if (beginDateVal) {

            return time.getTime() < beginDateVal;

          }

        }

      },

    start:'',

    end:''

    };

  },

};

3.现在问题是,如果我使用了value-format="yyyy-MM-dd",就会导致pickerOptionsStart(以pickerOptionsStart为例)中

[ return time.getTime() > endDateVal]   

这段代码中的endDateVal格式为'2019-04-10'这样的格式,但是time.getTime()的格式为13位时间戳,就会导致这个不等式无效;因此我采用的方式是把beginDateVal也变成时间戳;即把

let endDateVal =this.formDate.end

改为:

let endDateVal =new Date(this.formDate.end).getTime();

这样就解决了不等式两侧格式不同的问题,解决了时间范围失效的问题

你可能感兴趣的:(Element Ui 日期选择器 使用value-format后日期限定范围失效)