时间选择器
<div class="block">
<el-date-picker
v-model="beanData"
type="daterange"
format="yyyy/MM/dd"
@change="change"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
data()
change(data) {
this.choiceDate=''
let oDate1 = data[0]
let oDate2 = data[1]
let nowDate = new Date();
if(oDate1 && oDate2) {
if (oDate1.getTime() > oDate2.getTime()-1) {//开始时间不能大于等于结束时间
this.$message({
message: '开始时间不能大于等于结束时间',
type: 'warning'
})
return;
}
if (oDate1.getTime() >= nowDate.getTime()) {//开始时间不能大于等于当前时间前一天
this.$message({
message: '开始时间不能大于等于当前时间前一天',
type: 'warning'
})
return;
}
if (oDate2.getTime() > nowDate.getTime()-1000*60*60*24) {//结束时间必须小于当前时间前一天
this.$message({
message: '结束时间必须小于当前时间前一天',
type: 'warning'
})
return;
}
if (oDate1.getTime() <= oDate2.getTime()-7*24*3600*1000) {//结束时间只能在开始时间后六天
this.$message({
message: '结束时间只能在开始时间后六天',
type: 'warning'
})
return this.beanData[1]=new Date(oDate1.getTime()+6*24*3600*1000);
}
}
},
这里判断的是开始时间不能大于结束时间 验证大于一秒
oDate1.getTime() > oDate2.getTime()-1
这里判断的是开始时间不能大于结束时间 验证大于一天
oDate2.getTime() > nowDate.getTime()-1000*60*60*24
这里判断的是开始时间不能大于结束时间 验证大于7天就给结束时间赋值,因为这里判读的是getTime,赋值的时候要转换成Date类型
if (oDate1.getTime() <= oDate2.getTime()-7*24*3600*1000) {//结束时间不能大于当前时间
this.$message({
message: '结束时间只能在开始时间后六天',
type: 'warning'
})
return this.beanData[1]=new Date(oDate1.getTime()+6*24*3600*1000);
}
效果图 具体验证看个人需求