日期范围分开写的,开始日期随意选择(但不能超过今天),结束日期要控制在开始日期往后的半年内但最多不能超过今天(具体范围大家可以随意修改)
HTML 部分
data 部分
pickerOptionsStart: { // 开始日期的范围控制 _disabledDate: time => {
return time.getTime() > Date.now()
}
},
pickerOptionsEnd: { // 结束日期的范围控制 disabledDate: time => {
let statDate = new **Date(this.tradeDetailForm.startDate).getTime();
let *halfMonth = 6 30.5 24 3600 * 1000; // 180天
let threeMonths = statDate + halfMonth;
if(threeMonths > Date.now()) { // 以当前日期为基准,如果开始日期在半年内
return (
time.getTime() > Date.now() || // 不小于startTime
time.getTime() < statDate // 不大于当前日期 )
} else { // 以当前日期为基准,如果开始日期超过半年,结束日期的时间范围
return (
time.getTime() < statDate || // 不小于startTime
time.getTime() > threeMonths// 不大于当前日期 );
}
}
},
方法:当开始时间发生改变的时候,结束时间的变化
startChange() {
// 当开始日期改变的时候
let statDate = new **Date(this.tradeDetailForm.startDate).getTime();
let endDate = new **Date(this.tradeDetailForm.endDate).getTime();
let halfMonth = 6 30.5 24 3600 1000; // 180天 _
let threeMonths = statDate + halfMonth;
// 开始日期加半年转成年月日
let date = new **Date(threeMonths)
let Y = date.getFullYear();
let M = date.getMonth() + 1;
let D = date.getDate();
if(M < 10) {
M = ‘0’ + M;
}
if(D < 10) {
D = ‘0’ + D;
}
// 如果开始日期 在当前日期半年内 则结束日期变为今天
if(statDate > Date.now() - halfMonth){
this.tradeDetailForm.endDate = this.timeDefault
return
}
// 如果结束日期和开始日期时间范围超过半年,或者结束日期小于开始日期 ,则结束日期变为当前日期加半年
if((endDate-statDate) > halfMonth || statDate>endDate){
this.tradeDetailForm.endDate = Y + ‘-‘ + M + ‘-‘ + D }
},
把今天的时间转为年月日的方法
timeDefault() {
const date = new **Date()
let monthNow
let dateNow
if ((date.getMonth() + 1) >= 1 && (date.getMonth() + 1) <= 9) {
monthNow = ‘0’ + (date.getMonth() + 1)
} else {
monthNow = (date.getMonth() + 1)
}
if (date.getDate() >= 1 && date.getDate() <= 9) {
dateNow = ‘0’ + date.getDate()
} else {
dateNow = date.getDate()
}
const s1 = date.getFullYear() + ‘-‘ + monthNow + ‘-‘ + dateNow
return s1 }
},
