使用 Element+vue实现开始时间结束时间限制

html部分: 

<div>
                        <div style=" width: 220px; margin: 20px auto 0;">
                            <el-date-picker
                                    v-model="startDate"
                                    type="date"
                                    placeholder="选择开始日期"
                                    format="yyyy/MM/dd "
                                    value-format="timestamp"
                                    :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="选择结束日期"
                                    format="yyyy/MM/dd "
                                    value-format="timestamp"
                                    :picker-options="pickerOptionsEnd"
                                    @change="changeEnd">
                            </el-date-picker>
                        </div>
                    </div>

js部分:

data() {
            return {
                pickerOptionsStart: {},
                pickerOptionsEnd: {},
                startDate: '', // 开始日期
                endDate: '', // 结束日期
                }
}



methods: {
           
            changeStart() { // 限制开始时间
                this.pickerOptionsEnd = Object.assign({}, this.pickerOptionsEnd, {
                    disabledDate: (time) => {
                        if (this.startDate) {
                            return time.getTime() < this.startDate
                        }
                    }
                })
            },

            changeEnd() { // 限制结束时间
                console.log(this.endDate);
                this.pickerOptionsStart = Object.assign({}, this.pickerOptionsStart, {
                    disabledDate: (time) => {
                        if (this.endDate) {
                            return time.getTime() > this.endDate
                        }
                    }
                })
            },

            beautifyTimeFormat(value) { // 时间戳转换时间格式
                if (value == null) {
                    return '';
                } else {
                    let date = new Date(value);
                    let y = date.getFullYear();// 年
                    let MM = date.getMonth() + 1;// 月
                    MM = MM < 10 ? ('0' + MM) : MM;
                    let d = date.getDate();// 日
                    d = d < 10 ? ('0' + d) : d;
                    return y + '-' + MM + '-' + d;
                }
            }
}

html写法2

<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.3.8/lib/index.js"></script>
<div id="app">
<template>
  <div class="block">
    <span class="demonstration">起始日期</span>
    <el-date-picker v-model="startDate" type="date" placeholder="选择日期" :picker-options="pickerOptionsStart" @change="changeEnd">
    </el-date-picker>
  </div>
 
  <div class="block">
    <span class="demonstration">截止日期</span>
    <el-date-picker v-model="endDate" type="date" placeholder="选择日期" :picker-options="pickerOptionsEnd" @change="changeStart">
    </el-date-picker>
  </div>
</template>
</div>

js部分:

var Main = {
    data() {
      return {
        pickerOptionsStart: {},
        pickerOptionsEnd:{},
        startDate: '',
        endDate: '',
      };
    },
    methods:{
      changeStart (){
      	this.pickerOptionsStart = Object.assign({},this.pickerOptionsStart,{
          disabledDate: (time) => {
            return time.getTime() > this.endDate
          }
        })
      },
      changeEnd (){
      	this.pickerOptionsEnd = Object.assign({},this.pickerOptionsEnd,{
          disabledDate: (time) => {
          	return time.getTime() < this.startDate
        	}
        })
      }
    }
  };
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

css部分:

@import url("//unpkg.com/element-ui@2.3.8/lib/theme-chalk/index.css");

.block{
  margin-top:10px;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值