1.template部分
// template部分
<view class="cu-form-group">
<view class="title width justify text-gray">时限</view>
<picker mode="date" :value="checkTime" :start="startDate" :end="endDate" @change="bindDateChange">
<view class="uni-input">{{checkTime}}</view>
</picker>
</view>
</view>
2.初始数据部分
// data部分
checkTime: '请选择完成日期',
//computed部分
computed: {
startDate() {
//限制开始时间;
//也可以直接限定为当天日期 var date= new Date(); return date
return this.getDate('start');
},
endDate() {
return this.getDate('end');
}
},
3.method部分
//时间格式
getDate(type) {
const date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
if (type === 'start') {
// year = year - 60;
year=year;
month=month;
day=day;
} else if (type === 'end') {
year = year + 2;
console.log(year);
}
month = month > 9 ? month : '0' + month;;
day = day > 9 ? day : '0' + day;
return `${year}-${month}-${day}`;
},
bindDateChange: function(e) {
this.checkTime = e.target.value;
var time = new Date(this.checkTime).toString();
var beginYear=new Date().getFullYear();
var beginMonth=new Date().getMonth();
var beginDate=new Date().getDate();
var endYear=new Date(this.checkTime).getFullYear();
var endMonth=new Date(this.checkTime).getMonth();
var endDate=new Date(this.checkTime).getDate();
if(beginYear==endYear){ //同年
if(endMonth-beginMonth>3){ //月间隔超过3个月
console.log('超过')
}else if(endMonth-beginMonth==3){ //月间隔为3个月,比较具体日
if(endDate>beginDate){ //结束日期日大于开始日期日
console.log('超过')
}else{
console.log('不超过')
}
}else{
console.log('不超过')
}
}else{ //不同年
if(endYear-beginYear>1){
console.log('超过');
}else if(endYear-beginYear==1){
if(beginMonth<10){ //开始年的月份小于10时,不需要跨1年
console.log('超过');
}else if(beginMonth+3-endMonth<12){ //月间隔大于3个月
console.log('超过');
}else if(beginMonth+3-endMonth==12){ //月间隔等于3个月,比较具体日
if(endDate>beginDate){
console.log('超过');
}else{
console.log('不超过')
}
}
}else{
console.log('不超过')
}
}
},
参考资料: https://www.it610.com/article/1282886775806640128.htm.