Element UI的日期范围选择:限制选定日期在30天内

原文地址:【element】实现基于Element UI的日期范围选择:限制选定日期在30天内_daterange设置范围30天-优快云博客

在Web应用开发过程中,我们经常遇到需要用户在一个特定日期范围内做出选择的场景。使用Element UI的el-date-picker组件,我们可以轻松实现这一功能。本文将指导你如何设置el-date-picker,使得用户选择的第二个日期必须在第一个日期的30天之内,并且限制不允许选择未来的日期。

1. 添加el-date-picker组件
<el-date-picker
    v-model="date2"
    :format="'yyyy-MM-dd'"
    :value-format="'yyyy-MM-dd'"
    :picker-options="pickerOptions"
    type="daterange"
    range-separator="至"
    start-placeholder="开始日期"
    end-placeholder="结束日期">
</el-date-picker>
2. 设置pickerOptions

在data函数中定义pickerOptions,包含disabledDate和onPick两个属性,用于控制日期的可选范围和处理用户的选择行为。

data() {
    return {
        selectDate: '', // 存储第一个选定日期的时间戳
        pickerOptions: {
            disabledDate: (time) => {
                if (this.selectDate !== '') {
                    const oneDay = 24 * 3600 * 1000; // 一天的毫秒数
                    const thirtyDays = 30 * oneDay; // 30天的毫秒数
                    const minTime = this.selectDate - thirtyDays;
                    const maxTime = this.selectDate + thirtyDays;
                    let today = new Date();
                    today.setHours(0, 0, 0, 0); // 设置为今天的0点
                    // 限制可选日期:不可早于minTime,不可晚于maxTime和今天
                    return time.getTime() < minTime || time.getTime() > maxTime || time.getTime() > today.getTime();
                }
            },
            onPick: ({ maxDate, minDate }) => {
                this.selectDate = minDate ? minDate.getTime() : '';
                if (maxDate) {
                    this.selectDate = '';
                }
            },
        }
    };
},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值