共计 1257 个字符,预计需要花费 4 分钟才能阅读完成。
要求
抉择工夫,不能跨月
上面时封装的 js
插件"moment": "2.24.0"
HTML 调用
<el-date-picker | |
v-model="rangeDate" | |
:clearable="false" | |
type="daterange" | |
range-separator="至" | |
start-placeholder="处分开始日期" | |
end-placeholder="处分完结日期" | |
value-format="yyyy-MM-dd HH:mm:ss" | |
:default-time="['00:00:00','23:59:59']" | |
:picker-options="pickerOption" | |
@change="pickerChange" | |
></el-date-picker> |
js
import moment from 'moment'; // 引入插件 | |
let currentDate = ''; // 以后选中的日期 | |
let disabledDate = time => { // | |
// 禁用日期 | |
let d = new Date(currentDate); // 获取以后抉择工夫 | |
let year = d.getFullYear(); // 获取以后 - 年 | |
let month = d.getMonth() + 1; // 获取以后 - 月 | |
let day = new Date(year, month, 0).getDate(); // 获取本月天数(获取下一个月的 0 日即前一月的最初一日) | |
month = month > 9 ? month : '0' + month; // 优化月格局 | |
day = day > 9 ? day : '0' + day; // 优化日格局 | |
let startDay = `${year}-${month}-01 00:00:00`; // 当月第一天 | |
let endDay = `${year}-${month}-${day} 23:59:59`; // 当月最初一天 | |
let startTime = new Date(startDay).getTime(); // 第一天工夫戳 | |
let endTime = new Date(endDay).getTime(); // 最初一天工夫戳 | |
let cutTime = new Date(moment().format('YYYY-MM-DD 23:59:59')).getTime(); // 以后工夫戳 | |
if (currentDate !== '') { // 是否抉择日期,抉择日期,禁用掉不符合要求的工夫 | |
return (time.getTime() < startTime || | |
time.getTime() > endTime || | |
time.getTime() > cutTime); | |
} | |
return time.getTime() > cutTime; // 否则禁用大于以后工夫的工夫}; | |
let onPick = ({minDate, maxDate}) => { // 抉择工夫事件 | |
currentDate = minDate.getTime(); | |
if (maxDate) {currentDate = '';} | |
}; | |
let pickerOption = { | |
disabledDate, | |
onPick, | |
}; | |
export default pickerOption; |
正文完