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: '', // 開始日期至結束日期   } } }

  其實也沒有做太大的改動,就是將返回的條件更改了一下,處理了一下數據就可以了。共勉!

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM