vue,uniapp,picker选择日期.限制选择日期不超过3个月,判断时间间隔3个月

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值