一、组件代码:
<el-date-pickerv-model="value1"type="date"placeholder="选择日期":picker-options="pickerOptions0"></el-date-picker>
二、设置
选择今天以及今天之后的日期data (){return {pickerOptions0: {disabledDate(time) {return time.getTime() < Date.now() - 8.64e7; // 表示可选择当天时间}}, }}
选择今天以及今天以前的日期
data (){return {pickerOptions0: {disabledDate(time) {return time.getTime() > Date.now() - 8.64e7; // 表示可选择当天时间}}, }}
设置选择今天之后的日期(不能选择当天时间)
data (){return {pickerOptions0: {disabledDate(time) {return time.getTime() < Date.now();}}, }}
设置选择今天之前的日期(不能选择当天)
data (){return {pickerOptions0: {disabledDate(time) {return time.getTime() > Date.now();}}, }}
设置选择三个月之前到今天的日期
data (){return {pickerOptions0: {disabledDate(time) {let curDate = (new Date()).getTime();let three = 90 * 24 * 3600 * 1000;let threeMonths = curDate - three;return time.getTime() > Date.now() || time.getTime() < threeMonths;;}}, }}
限制结束日期不能大于开始日期
<el-date-pickerv-model="value1"type="date"placeholder="开始日期":picker-options="pickerOptions0"></el-date-picker><el-date-pickerv-model="value2"type="date"placeholder="结束日期":picker-options="pickerOptions1"></el-date-picker>
data(){return {pickerOptions0: {disabledDate: (time) => {if (this.value2 != "") {return time.getTime() > Date.now() || time.getTime() > this.value2;} else {return time.getTime() > Date.now();}}},pickerOptions1: {disabledDate: (time) => {return time.getTime() < this.value1 || time.getTime() > Date.now();}},}}
注:设置完default-time及picker-options两个属性后,当选择当天时间后,无法点击确定按钮。如图:
原因: 在上面代码中,设置 pickerOptions属性只能选择此刻及之前的时间。当你选择当天时,default-time会默认结束时间为’23:59:59’,你的结束时间属于之后的时间范围,与 pickerOptions属性冲突。因此无法点击确认按钮。
解决: 更改pickerOptions属性设置,限制只能选择当天’23:59:59’及之前的日期时间,将Date.now()改为new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60*1000-1);//表示从23:59:59结束
若想设置当前时间从零时开始,可用new Date(new Date(new Date().toLocaleDateString()).getTime())