2016-08-01 81 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

相关问题