记录使用el-date-picker组件设置日期禁用

该博客详细介绍了如何在前端使用El-Date-Picker组件进行日期选择,并通过JavaScript设置日期禁用功能,确保开始日期不晚于结束日期,以及限制选择范围在当前时间一年之内。提供了HTML和JS代码示例,适用于前端开发中对日期选择有特殊需求的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、使用步骤

1.html部分

代码如下:

<!-- 多个日期选择框设置日期禁用 -->
<el-form-item label="操作时间" prop="beginDate">
  <el-date-picker
     v-model="searchForm.beginDate"
     type="date"
     placeholder="选择开始时间"
     format="yyyy-MM-dd"
     value-format="yyyy-MM-dd"
     :picker-options="pickerOptionsStart">
   </el-date-picker>
 </el-form-item>

<el-form-item label-width="0" prop="endDate">
  <el-date-picker
     v-model="searchForm.endDate"
     type="date"
     placeholder="选择结束时间"
     format="yyyy-MM-dd"
     value-format="yyyy-MM-dd"
     :picker-options="pickerOptionsEnd">
   </el-date-picker>
 </el-form-item>


<!-- 单个日期选择框设置日期禁用 -->
<el-form-item label=" " prop="sqFileStart">
   <el-date-picker
     v-model="form.licenseFile[index].effectiveTime"
     type="daterange"
     format="yyyy-MM-dd"
     value-format="yyyy-MM-dd"
     range-separator="-"
     :picker-options="pickerOptionsTime"
     start-placeholder="开始日期"
     end-placeholder="结束日期"
   ></el-date-picker>
 </el-form-item>

2.js部分

代码如下:

data () {
  return {
  	// 多个日期设置日期禁用
    pickerOptionsStart: {
      disabledDate: time => {
        const endDate = new Date(this.searchForm.endDate).getTime()
        if (endDate) {
          return time.getTime() > endDate - 0
        }
      }
    },
    // 多个日期设置日期禁用
    pickerOptionsEnd: {
      disabledDate: time => {
        const beginDate = new Date(this.searchForm.beginDate).getTime()
        if (beginDate) {
          return time.getTime() < beginDate - 0
        }
      }
    },
    
    // 单个日期设置日期禁用
    pickerOptionsTime: {
     disabledDate (time) {
        let curDate = new Date().toString(); // 当前时间戳转为字符串
        let curDateYear = new Date().getFullYear(); // 当前时间的年份
        let oneYearAgoDate = curDate.replace(curDateYear, curDateYear - 1); // 字符串年份替换为一年前
        let oneYearAfterDate = curDate.replace(curDateYear, curDateYear + 1); // 字符串年份替换为一年后
        let oneYear = new Date(oneYearAgoDate).getTime(); //一年前字符串转为时间戳
        // let halfYear = new Date().getTime() - 1000 * 3600 * 24 * 180;// 半年前字符串转化为时间戳
        let oneYearAfter = new Date(oneYearAfterDate).getTime(); //一年后字符串转为时间戳
        return time.getTime() > oneYearAfter || time.getTime() < oneYear;
        // return time.getTime() > oneYearAfter || time.getTime() < halfYear;
      },
    },
  }
},

3、效果展示

3.1先选择开始日期,再选择结束日期

3.2先选择结束日期,再选择开始日期
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剑九_六千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值