之前看了很多文章都是限度一个月的
<template>
<div class="data-picker">
<el-date-picker type="datetimerange" v-model="serchTimes" placeholder="请抉择创立工夫" clearable size="mini" style="width: 320px" range-separator="至" start-placeholder="抉择开始工夫" end-placeholder="抉择完结工夫" :picker-options="pickerOptions" @change="changeTime" :editable="false"/>
</div>
</template>
<script>
//这里是引入解决工夫的办法
import {formatDate} from '../../utils/date';
export default {
data() {
return { // 设定工夫选择器的范畴 这步是要害 pickerOptions: { //首先是抉择出开始工夫,依据开始工夫给出可选的六个月工夫范畴 onPick: ({maxDate, minDate}) => { this.selectData = minDate.getTime(); if (maxDate) { // 解除限制 this.selectData = ''; } }, disabledDate:(time) => { if(!this.isNull(this.selectData)) { const curDate = this.selectData; const three = 180 * 24 * 3600 * 1000;// 6个月 const threeMonths = curDate + three; // 开始工夫+6个月 return time.getTime() < curDate || time.getTime() > threeMonths; } } }, createStartDate:'', createEndDate:'', serchTimes:null, selectData:'',};
},
methods: {
changeTime() { if(this.serchTimes) { this.createStartDate = formatDate(new Date(this.serchTimes[0]),'yyyy-MM-dd hh:mm:ss'); this.createEndDate = formatDate(new Date(this.serchTimes[1]),'yyyy-MM-dd hh:mm:ss'); const numDays = (new Date(this.serchTimes[1]).getTime() - new Date(this.serchTimes[0]).getTime()) / (24 * 3600 * 1000);
//这一步是为了限度选完工夫后手动批改,目前我没有找到更好的方法我就用的这种提醒
if(numDays > 180) { this.$alert('工夫范畴不能超过六个月?', '正告', { confirmButtonText: '确定', }); this.serchTimes = null; this.createStartDate = ''; this.createEndDate = ''; } }else{ this.createStartDate = ''; this.createEndDate = ''; } },// 查看是否为空isNull(value) { if (value) { return false; } return true;}
},
};
</script>