关于vue中elementui时间组件开始时间和结束时间的限制问题

如果开始时间和结束时间并存的话,那么就需要对二者做出限制:结束时间>=开始时间&&开始时间<=结束时间
在这里插入图片描述
在这里插入图片描述
第一种实现方式:

<template>
   <div>
	<div>
	    开始时间:
	    <el-date-picker
	        v-model="startTime"
	        type="date"
	        placeholder="开始日期"
	        value-format="yyyy-MM-dd"
	        :picker-options="pickerOptionsStart"
	        style="width:14%">
	    </el-date-picker>
	</div>
	
	<div>
	    结束时间:
	    <el-date-picker
	        v-model="endTime"
	        type="date"
	        placeholder="结束日期"
	        value-format="yyyy-MM-dd"
	        :picker-options="pickerOptionsEnd"
	        style="width:14%;margin-top:20px;">
	    </el-date-picker>
	</div>
  </div>
</template>

<script>
export default {
  data(){
    return {
      startTime: '',
      endTime: '',
      pickerOptionsStart: {
        disabledDate: time => {
          if (this.endTime) {
                return time.getTime() > new Date(this.endTime).getTime()
          }
        }
      },
      pickerOptionsEnd: {
        disabledDate: time => {
          if (this.startTime) {
            return time.getTime() < new Date(this.startTime).getTime() - 86400000
          }
        }
      }
    }
  }
}

  • 第二种实现方式:
<template>
  <div>
    <!-- 开始时间 -->
    <div style=" width: 220px; margin: 20px auto 0;">
        <el-date-picker
                v-model="startDate"
                type="date"
                placeholder="选择开始日期"
                value-format="yyyy-MM-dd"
                :picker-options="pickerOptionsStart"
                @change="changeStart">
        </el-date-picker>
    </div>
    <!-- 结束时间 -->
    <div style=" width: 220px; margin: 20px auto 0;">
        <el-date-picker
                v-model="endDate"
                type="date"
                placeholder="选择结束日期"
                value-format="yyyy-MM-dd"
                :picker-options="pickerOptionsEnd"
              @change="changeEnd">
        </el-date-picker>
    </div>
  </div>
</template>

<script>
// 1、引入子组件
export default {
  data(){
    return {
      pickerOptionsStart: {},
      pickerOptionsEnd: {},
      startDate:'',//开始时间
      endDate:'',//结束时间
    }
  },
  methods:{
    changeStart() { // 限制开始时间
        this.pickerOptionsEnd = Object.assign({}, this.pickerOptionsEnd, {
            disabledDate: time => {
              if (this.startDate) {
                    return time.getTime() < new Date(this.startDate).getTime() - 86400000
              }
            }
        })
    },

    changeEnd() { // 限制结束时间
        this.pickerOptionsStart = Object.assign({}, this.pickerOptionsStart, {
            disabledDate: time => {
              if (this.endDate) {
                      return time.getTime() > new Date(this.endDate).getTime()
              }
            }
        })
    }
  }
}
</script>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值