elementUI 的el-date-picker日期,开始时间不能大于结束时间

需求描述:form表单里有开始日期和结束日期,要求开始日期不能大于结束日期,但是开始日期可以等于结束日期。

效果如下:

实现代码:

<el-form ref="form" :model="form" :rules="rules" label-width="140px">
    <el-form-item label="开始日期" prop="startDate">
              <el-date-picker
                v-model="form.startDate"
                style="width: 100%"
                clearable
                size="small"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="请选择"
                :picker-options="pickerOptionsStartTime"
              />
      </el-form-item>
      <el-form-item label="结束日期" prop="endDate">
              <el-date-picker
                v-model="form.endDate"
                style="width: 100%"
                clearable
                size="small"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="请选择"
                :picker-options="pickerOptionsNextTime"
              />
      </el-form-item>
</el-form>
export default {
  data() {
    return {
        // 表单参数
      form: {},
      // 表单校验
      rules: {
        startDate: [{ required: true, message: '请选择', trigger: 'blur' }],
        endDate: [{ required: true, message: '请选择', trigger: 'blur' }],
      },
      
      pickerOptionsStartTime: {
        disabledDate: (time) => {
          // let preDate = new Date(choiceDateTime - 1*24*60*60*1000); // 前一天
          // let nextDate = new Date(choiceDateTime + 1*24*60*60*1000); // 后一天
          if (this.form.endDate) {
            let endDateTime = new Date(this.form.endDate).getTime()
            // 租赁开始日期要小于等于租赁结束日期
            return time.getTime() > new Date(endDateTime).getTime()
          }
        },
      },
      pickerOptionsNextTime: {
        disabledDate: (time) => {
          // let preDate = new Date(choiceDateTime - 1*24*60*60*1000); // 前一天
          // let nextDate = new Date(choiceDateTime + 1*24*60*60*1000); // 后一天
          if (this.form.startDate) {
            let startDateTime = new Date(this.form.startDate).getTime()
            // 租赁开始日期要小于于等于租赁结束日期
            return time.getTime() < new Date(startDateTime).getTime() - 8.64e7 // - 8.64e7 代表可以选择和开始日期相同的一天
          }
        },
      },
    }
  }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值