element ui 日期控件 限制日期在固定时间内

Posted yearshar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了element ui 日期控件 限制日期在固定时间内相关的知识,希望对你有一定的参考价值。

之前写过基于element ui 中的日期控件都开始日期的限制和结束日期的限制,最近项目要求要做个限制日期在30天内,然后将之前的代码重构了一下。

代码如下

<el-form-item
                          label="开始日期"
                          label-width="90px"
                          prop="startDate">
                          <el-date-picker
                            v-model="statDate"
                            :picker-options="startDateOptions"
                            type="date"
                            clearable
                            style="width:140px"
                            value-format="yyyy-MM-dd"
                            placeholder="开始日期"/>
                        </el-form-item>
 
<el-form-item
                          label="结束日期"
                          label-width="90px"
                          prop="endDate">
                          <el-date-picker
                            v-model="endDate"
                            :picker-options="EndDateOptions"
                            type="date"
                            clearable
                            style="width:140px"
                            value-format="yyyy-MM-dd"
                            placeholder="结束日期"/>
                        </el-form-item>
 
 
 
export default{
data() {
    return {
   
 // 时间开始测试
      startDateOptions: {
        // console.log(time)
        disabledDate: (time) => {
          if (this.endDate) { 
       const day=30*24*3600*1000 //将日期转换为毫秒       return time.getTime() > Date.now(this.endDate) - 8.64e7 ||time.getTime() < new Date(this.endDate).getTime()-day // 如果当天可选,就不用减8.64e7 ,将日期的限制在结束日期减去30天内可选,其他的日期不可选 } else {     return time.getTime() < new Date(this.endDate).getTime() || time.getTime() > Date.now() || time.getTime() > Date.now(this.endDate) - 8.64e7 } } }, // 时间结束测试 EndDateOptions: { disabledDate: (time) => {
      if(this.statDate){
        const day=30*24*3600*1000
        return time.getTime() > new Date(this.statDate).getTime()+ day|| time.getTime() > Date.now()
        || time.getTime()<new Date(this.statDate).getTime ||time.getTime() > Date.now(this.statDate) - 8.64e7 // 如果当天可选,就不用减8.64e7
      }else{
          return time.getTime() < new Date(this.statDate).getTime() || time.getTime() > Date.now() || time.getTime() > Date.now(this.statDate) - 8.64e7 // 如果当天可选,就不用减8.64e7
      } } }, statDate: ‘‘, // 结束日期 endDate: ‘‘, // 开始日期至结束日期   } } }

  其实也没有做太大的改动,就是将返回的条件更改了一下,处理了一下数据就可以了。共勉!

 

 

 

 

 

以上是关于element ui 日期控件 限制日期在固定时间内的主要内容,如果未能解决你的问题,请参考以下文章

element ui 的datePicker 日期控件怎么获取到鼠标选中的时间

element-ui开始日期结束日期限制

vue开发问题-解决方法element UI日期控件失效

vue:element.ui中中日期时间范围选择控件怎么设置选择的范围,不能跨月选择

element-ui日期控件el-date-picker显示的月份、日期由英文改为中文

Element Ui 日期选择器 范围限制 + value-format