关于前端:elementui-eldatepicker-时间日期组件设置时间日期范围2

40次阅读

共计 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;

正文完
 0