zoukankan      html  css  js  c++  java
  • ElementUI DatePicker 日期选择器控制选择时间范围

    选择了开始时间,再选择结束时间的时候就不能早于开始时间;
    选择了结束时间,再选择开始时间的时候就不能晚于结束时间;

    如果开始时间为空,选择结束时间只能是今天之后的时间;

    <el-date-picker v-model="ruleForm.startTime" type="date" placeholder="开始时间" :picker-options="pickerOptions0"></el-date-picker>
    <el-date-picker v-model="ruleForm.endTime" type="date" placeholder="截止时间" :picker-options="pickerOptions1"></el-date-picker>
    data(){
        return {
        pickerOptions0: {        
         disabledDate: time => {
              if (this.ruleForm.endTime != "" && this.ruleForm.endTime) {
                let timeStr = new Date(this.ruleForm.endTime.replace(/-/g, "/"));
                return time.getTime() > timeStr;
              } else {
                return "";
              }
            }
          },
          pickerOptions1: {
            disabledDate: time => {
              if (this.ruleForm.startTime != "" && this.ruleForm.startTime) {
                let timeStr = new Date(this.ruleForm.startTime.replace(/-/g, "/"));
                return time.getTime() < timeStr;
              } else if (this.ruleForm.startTime == "") {
                return time.getTime() < Date.now() - 8.64e7; //如果没有后面的-8.64e7就是不可以选择今天
              } else {
                return "";
              }
            }
          }
        }  
    }
     

    选择今天以及今天之后的日期

    <el-date-picker
           v-model="value1"
           type="date"
           placeholder="选择日期"
           :picker-options="pickerOptions0">
    </el-date-picker>
    
    data(){
        return {
            pickerOptions0: { 
                disabledDate(time) {
                    return time.getTime() < Date.now() - 8.64e7;//如果没有后面的-8.64e7就是不可以选择今天 
                }
            }
        }  
    }

    选择今天以及今天以前的日期

    data (){
       return {
           pickerOptions0: {
              disabledDate(time) {
                return time.getTime() > Date.now() - 8.64e6;//如果没有后面的-8.64e6就是不可以选择今天
              }
            },  
       }     
    }
    

    限制结束日期不能大于开始日期

    <el-date-picker
           v-model="value1"
           type="date"
           placeholder="开始日期"
           :picker-options="pickerOptions0">
    </el-date-picker>
    <el-date-picker
           v-model="value2"
           type="date"
           placeholder="结束日期"
           :picker-options="pickerOptions1">
    </el-date-picker>
    
    data(){
        return {
             pickerOptions0: {
                    disabledDate: (time) => {
                        if (this.value2 != "") {
                            return time.getTime() >  new Date(this.value2).getTime();
     
                    }
                },
                pickerOptions1: {
                    disabledDate: (time) => {
                        return time.getTime() < new Date(this.value1).getTime()- 1*24*60*60*1000;//减去一天的时间代表可以选择同一天;
                    }
                },
        }      
    }

    限制选择开始时间不能小于当前时间。并且结束时间不能大于开始时间(比上面多了层限时)

    pickerOptions0: {
        //结束时间不能大于开始时间
        disabledDate: time => {
            if (this.addForm.date_range_end) {
                return (
                    time.getTime() >
                    new Date(this.addForm.date_range_end).getTime()
                );
            } else {
                //还没有选择结束时间的时候,让他只能选择今天之后的时间包括今天
                return time.getTime() < Date.now() - 8.64e7;
            }
        }
    },
    pickerOptions1: {
        disabledDate: time => {
            if (this.addForm.date_range_start) {
                return (
                    time.getTime() <
                    new Date(this.addForm.date_range_start).getTime() -
                        1 * 24 * 60 * 60 * 1000
                ); //可以选择同一天
            }
        }
    },

     限制不能选择今年之后的年份

    <el-date-picker v-model="year" type="year" placeholder="选择年度" value-format="yyyy" :picker-options="pickerOptions0"></el-date-picker>
    
    pickerOptions0: {
          disabledDate(time) {
               return time.getTime() > Date.now() - new Date().getFullYear();
          }
    },
    
  • 相关阅读:
    HDU 4396
    Vijos1603 迷宫
    BZOJ1087 [SCOI2005] 互不侵犯King
    BZOJ2208 [JSOI2010] 连通数
    BZOJ1051 [HAOI2006] 受欢迎的牛
    BZOJ2751 [HAOI2012] 容易题(easy)
    BZOJ1015 [JSOI2008] 星球大战starwar
    BZOJ1012 [JSOI2008] 最大数maxnumber
    BZOJ1050 [HAOI2006] 旅行comf
    BZOJ2761 [JLOI2011] 不重复数字
  • 原文地址:https://www.cnblogs.com/wangjae/p/10564709.html
Copyright © 2011-2022 走看看