Element日期区间控件 分开选择开始和结束日期的禁用判断

12 篇文章 0 订阅

选择一个日期区间,我们肯定会想到elementUI的日期区间控件,但是奈何我们需求就是不想要一下选择一个日期范围,而是分两次选择开始日期和结束日期,这样就需要做禁用判断了,比如你先选择开始日期,那你结束日期肯定要在开始日期之后,或者你先选择了结束日期,那你的开始日期只能选结束日期之前了:
如图: 在这里插入图片描述
在这里插入图片描述
代码如下:

// An highlighted block
<template>
  <div class="date-wrapper">
    <el-date-picker type="date" placeholder="选择开始日期"  :picker-options="pickerOptions" value-format="yyyy-MM-dd" v-model="form.startTime"></el-date-picker>
    <span style="padding: 0 1px"></span>
    <el-date-picker type="date" placeholder="选择结束日期" :picker-options="pickerOptions1" value-format="yyyy-MM-dd" v-model="form.endTime" ></el-date-picker>
  </div>
</template>
<script>
  const vm = this
  export default {
    name: "datePicker",
    computed:{
      pickerOptions() {
        const that = this
        return {
          disabledDate(time) {
            if(that.form.endTime && that.form.endTime !== ''){
              return time.getTime() > new Date(that.form.endTime).getTime()
            }
          }
        }
      },
      pickerOptions1() {
        const that = this
        return {
          disabledDate(time) {
            if(that.form.startTime && that.form.startTime !== ''){
              return (time.getTime()+ 3600 * 1000 * 24) < new Date(that.form.startTime).getTime()
            }
          }
        }
      }
    },
    data() {
      return {
        form:{
          startTime: '',
          endTime: '',
        }
      }
    }
  }
</script>
<style lang="scss">
  .date-wrapper{
    display: flex;
    justify-content: flex-start;
    vertical-align: center;
    .el-date-editor{
      width: 102px !important;
      .el-input__inner{
        padding: 0px 0px 0 10px !important;
      }
      .el-input__prefix{
        display: none;
      }
      .el-input__suffix{
        text-align: right;
      }
    }
  }
</style>


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于ele日期选择禁用始时间比结束时间大的小时,您可以使用以下方法来实现: 1. 首先,您需要获取始时间和结束时间的小时数。 2. 然后,比较始时间和结束时间的小时数,如果始时间大于结束时间,即始时间的小时数大于结束时间的小时数,那么您可以禁用这些小时。 3. 在ele日期选择器的配置中,使用 "disabled-hours" 属性来禁用指定的小时。您可以将始时间大于结束时间的小时数传递给该属性。 以下是一个示例代码片段,演示如何在ele日期选择器中禁用始时间比结束时间大的小时: ```javascript <template> <el-date-picker v-model="date" type="datetime" :picker-options="pickerOptions" ></el-date-picker> </template> <script> export default { data() { return { date: null, pickerOptions: { disabledHours: this.getDisabledHours } }; }, methods: { getDisabledHours() { if (!this.date) { return []; } const startHour = this.date.getHours(); const endHour = this.dateEnd.getHours(); if (startHour > endHour) { // 禁用始时间比结束时间大的小时 return Array.from({ length: 24 }, (v, i) => i).slice(endHour + 1, startHour); } return []; } } }; </script> ``` 在上述示例中,我们使用了一个计算属性 `pickerOptions` 来配置ele日期选择器的选项。其中,`disabledHours` 函数用于返回要禁用的小时数数组。我们通过比较始时间和结束时间的小时数,来确定要禁用的小时范围。如果始时间大于结束时间,我们通过 `slice` 方法从结束时间的下一个小时到始时间的前一个小时来获取要禁用的小时数数组。 请注意,示例代码中的 `el-date-picker` 是基于Element UI库的一个组件。您可以根据自己的需求进行相应的调整和修改。 希望这能帮助到您!如有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值