【问题标题】:How to disable specific dates in angular material datepicker如何在角度材料日期选择器中禁用特定日期
【发布时间】:2016-12-06 14:18:33
【问题描述】:

如何根据当前日期禁用特定日期,假设今天是 2016 年 8 月 1 日,我想禁用当前日期之后的 4 天(4 是一个示例,它可以是任何数字)不算数,

例如,如果今天是 8/1/16 我想禁用 8/2/16、8/3/16、8/4/16 和 2016 年 8 月 5 日,可用的日期是 2016 年 8 月 8 日之后的日期。

目前我只知道如何使用此过滤器禁用日历中的所有周末

$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>

这是我正在使用的版本 角maeria:v1.1.0-rc.5 datepicker:来自角度材料 v1.1.0-rc4-master-88f2e3f 的日期选择器

编辑 1

我用你的回答编辑了我的代码,但现在日期选择器中的所有日子都被禁用了我无法选择任何东西,我做错了什么?

我添加了这个库时刻库

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

【问题讨论】:

    标签: javascript angularjs datepicker angular-material


    【解决方案1】:

    对于这种情况,你可以尝试使用 moment.js

    要禁用所选日期后的任意天数,您可以执行此操作(希望应该可以工作,尚未测试,可能有错字)

    //date是你要检查的日期

    //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;
             }
      }
    

    【讨论】:

    • 感谢您的回答,但“天”的值是多少?还有我想检查的日期总是当天我不知道为什么我需要检查它使用 moment() 日期,如果当前日期小于我要添加 4 天的那一天?并且那个“日期”变量与“date.getDay()”变量相同,提前谢谢
    • 我编辑了我的问题@Natraj,现在我在日期选择器中的所有日期都被禁用了,为什么?
    • 另外,您似乎没有使用我给您的代码,您正在将今天与今天本身进行比较并且循环继续,这就是所有日期都被禁用的原因......跨度>
    • 我相信如果你传递了正确的日期,上面的代码应该能按预期工作。在您的示例中,如果您传递 date 值是 8 月 1 日或 2 日或 3 或 4 日,它将返回 false 并且在工作日的其余时间它将返回 true.. 如果这不起作用,请告诉我
    • 好的,谢谢朋友,我会尝试用结果编辑我的问题
    猜你喜欢
    • 1970-01-01
    • 2021-05-31
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    相关资源
    最近更新 更多