本来想将时间选择器的时间format成8位字符串型,如20200307,但是format之后范围选择功能不能正常使用,最后使用moment插件读取八位字符串时间得以解决

初始源代码参考至https://www.cnblogs.com/ceceliahappycoding/p/10862991.html
初始源代码参考至本本链接

过程中发现value-format="2020-03-07"则可以正常使用,探索许久发现是不能正常识别八位字符串时间

<el-form ref="form" :model="sizeForm" label-width="100px" size="mini">
    <el-form-item label="开始时间">
        <el-date-picker type="datetime" placeholder="开始日期" :picker-options="startTime" v-model="sizeForm.startTime" style="width: 90%;"></el-date-picker>
    </el-form-item>
    <el-form-item label="结束时间">
        <el-date-picker type="datetime" placeholder="结束日期" :picker-options="endTime" v-model="sizeForm.endTime" style="width: 90%;"></el-date-picker>
    </el-form-item> 
<el-form>
export default{
  data () {
    return {
      sizeForm: {
        startTime: '',
        endTime: ''
      },
// 开始时间小于结束时间,且开始时间小于此刻
      startTime: {
        disabledDate: time => {
          if (this.sizeForm.endTime) {
            return time.getTime() > new Date(this.sizeForm.endTime).getTime()
          } else {
            return time.getTime() > Date.now()
          }
        }
      },
// 结束时间大于开始时间,且小于此刻
      endTime: {
        disabledDate: time => {
          if (this.sizeForm.startTime) {
            return time.getTime() > Date.now() || time.getTime() < new Date(this.sizeForm.startTime).getTime()
          } else {
            return time.getTime() > Date.now()
          }
        }
      }
    }
  }
}

解决方法:
import moment from 'moment’
将new Date().getTime()换成moment()

Logo

前往低代码交流专区

更多推荐