<el-form-item label="结束日期" prop="endDate" style="display: inline-block;" required>
<el-date-picker
v-model="form.endDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="结束日期"
:picker-options="pickerEndDateOptions"
>
</el-date-picker>
</el-form-item>
selectDateRules() {
let self = this;
this.pickerEndDateOptions = {
disabledDate(time){
//当前年
let currentYear = new Date().getFullYear();
//选择的当年
let selectYear = new Date(self.form.startDate).getFullYear();
let selectStartDate;
let selectEndDate = `${selectYear}-12-31`;
let selectStartStamp;
let selectEndStamp = new Date(selectEndDate).getTime();
//如果选择的年和今年相等
if(selectYear == currentYear) {
selectStartStamp = Date.now()- 24 * 60 * 60 * 1000;
}else {
//如果选择的不是今年
//注意:这里需要到年月日 时分秒 否则会默认为08:00:00
selectStartDate = `${selectYear}-01-01 00:00:00`;
selectStartStamp = new Date(selectStartDate).getTime();
}
//getTime() 返回距离1970年1月1日之间的毫秒数
//如果选的时间(time.getTime())小于开始时间(selectStartDate)时间的话,就不能选择
//如果选的时间(time.getTime())大于(selectStartDate)时间的话,就可以选择
//return为true的话,就禁止掉
return time.getTime() < selectStartStamp || time.getTime() > selectEndStamp;
}
}
}