2016-08-01 94 views
1

如何禁用基於當前日期具體日期,讓我們說,今天是16年8月1日,我想禁用4天(4這是它可以是任何一個例子數字)在當前日期週末後不計算日期,如何禁用角材料具體日期和日期選擇器

如果今天是8/1/16,則示例我想禁用8/2/16,8/3/16,8/4/16和 8/5/16,並且可用的日期將是在8/8/16之後的日期。

目前我只知道如何禁用所有的週末兩天日曆中的這個過濾器

$scope.disableSelectedDays = function() { 

       //I create a New moment since I always going to need the current date 
       var momentJS = new moment(); 

       if (momentJS <= moment().add(4, 'days')) { 
        return false; 
       } else { 
        //Just disable the weekends 
        var day = date.getDay(); 
        return day === 1 || day === 2 || day === 3 || day === 4 || day === 5; 
       } 
      } 

這是我的HTML

<div class="form-group"> 
           <label>Delivery date:</label> 
           <md-datepicker ng-model="myDate" md-placeholder="Enter date" 
               md-date-filter="disableSelectedDays"> 
           </md-datepicker> 
          </div> 

這是我使用的版本 angular-maeria:v1.1.0-rc.5 datepicker:datepicker from angular material v1.1.0-rc4-master-88f2e3f

編輯1

我用你的答案編輯了我的代碼,但現在datepicker中的所有日子都被禁用我不能選擇任何東西,我做錯了什麼?

我加入這個libaries時刻庫

moment.js版本:2.14.1 角時刻https://github.com/urish/angular-moment

回答

0

對於這種情況,你可以嘗試使用moment.js

要禁用任何數量你可以做到這一點(希望應該工作,沒有測試過,可能會有錯字)

//日期是你想檢查的日期

// NUMBEROFDAYS 4,按您的例子

$scope.disableSelectedDays = function (date) { 
    if(date <= moment().add(4, 'days')) { 
     return false; 
    } 
    else { 
    //Just disable the weekends 
      var day = date.getDay(); 
      return day === 1 || day === 2 || day ===3 || day === 4 || day === 5; 
     } 
    } 
+0

感謝您的回答,但是這將是「天」價值?我也想檢查它的將是永遠當天我不日期'不知道爲什麼我需要檢查它的時間()日期,如果當前日期比我添加4天的那一刻更短?和「日期」變量是相同的,「date.getDay()」變量在先感謝 –

+0

我編輯我的問題@Natraj,現在我的日期選擇器中的所有日期都被禁用爲什麼? –

+0

此外,看來你沒有用我給你的代碼,你今天今天本身比較和循環下去,這就是原因,所有日期都被禁用...... – Natraj

相關問題