vue+element 日期选择器,开始时间和结束时间的问题

在做项目的时候,经常会碰到开始时间和结束时间同时出现的问题,一般情况下,选定了开始时间,那么结束时间就不能小于开始时间,反之亦然。

element提供了一个日期选择器组件,可以根据自己想要的日期格式来自定义时间。

<el-form
  ref="submitForm"
  :model="submitForm"
  class="form-item table"
  label-width="120px"
  label-position="left"
>
  <el-form-item label="开始时间" prop="startTime">
    <el-date-picker
      v-model="submitForm.startTime"
      type="date"
      placeholder="请输入开始时间"
      value-format="yyyy-MM-dd HH:mm:ss"
      :picker-options="pickerOptionsStart"
    ></el-date-picker>
  </el-form-item>
  <el-form-item label="结束时间" prop="endTime">
    <el-date-picker
      v-model="submitForm.endTime"
      type="date"
      placeholder="请输入结束时间"
      value-format="yyyy-MM-dd HH:mm:ss"
      :picker-options="pickerOptionsEnd"
    ></el-date-picker>
  </el-form-item>
</el-form>

这里,绑定了使用:picker-options绑定一个变量,在用户选择的时候,自动校准。

完整代码:

<el-form
  ref="submitForm"
  :model="submitForm"
  class="form-item table"
  label-width="120px"
  label-position="left"
>
  <el-form-item label="开始时间" prop="startTime">
    <el-date-picker
      v-model="submitForm.startTime"
      type="date"
      placeholder="请输入开始时间"
      value-format="yyyy-MM-dd HH:mm:ss"
      :picker-options="pickerOptionsStart"
    ></el-date-picker>
  </el-form-item>
  <el-form-item label="结束时间" prop="endTime">
    <el-date-picker
      v-model="submitForm.endTime"
      type="date"
      placeholder="请输入结束时间"
      value-format="yyyy-MM-dd HH:mm:ss"
      :picker-options="pickerOptionsEnd"
    ></el-date-picker>
  </el-form-item>
</el-form>
<script>
export default {
  data() {
    return {
      // 开始结束日期限制
      pickerOptionsStart: {
        disabledDate: time => {
          if (this.submitForm.endTime) {
            return (
              time.getTime() >= new Date(this.submitForm.endTime).getTime()
            );
          }
        }
      },
      // 结束日期限制
      pickerOptionsEnd: {
        disabledDate: time => {
          if (this.submitForm.startTime) {
            return (
              time.getTime() <= new Date(this.submitForm.startTime).getTime()
            );
          }
        }
      },
      submitForm: {
        startTime: '',
        endTime: ''
      }
    }
  }
}
</script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值