【问题标题】:disable all previous dates in angular bootstrap datetimepicker在角度引导日期时间选择器中禁用所有以前的日期
【发布时间】:2016-05-27 10:06:39
【问题描述】:

我正在使用 angularjs 创建一个项目。我从链接中集成了 angulardatetimepicker:

https://github.com/dalelotts/angular-bootstrap-datetimepicker.

现在我想禁用当前日期之前的所有日期。 这是我的代码:

 function beforeRender($view, $dates, $leftDate, $upDate, $rightDate) {
    var minDate = moment().startOf($view).valueOf();  
    for(var i=1; i < $dates.length;i++) {
       if(new Date().getTime() > $dates[i].utcDateValue) {
          $dates[i].selectable = false;
       }
    }     
    }

此代码未正确禁用日期

【问题讨论】:

  • 请您为此制作一个小提琴..
  • 你不能把 min-date 设置为当前日期吗?

标签: javascript angularjs datepicker bootstrap-datetimepicker


【解决方案1】:

循环中的小改动:

   function beforeRender($view, $dates, $leftDate, $upDate, $rightDate) {
    var minDate = moment().startOf($view).valueOf();  
    for(var i=0; i < $dates.length;i++) {
       if(minDate > $dates[i].utcDateValue) {
          $dates[i].selectable = false;
       }
    }     
    }

【讨论】:

  • 这是完美的。
【解决方案2】:

考虑避免 for...循环:

function beforeRender($view, $dates) {
  var today = moment().valueOf(); 

  $dates.filter(function (date) {
    return date.localDateValue() < today
  }).forEach(function (date) {
    date.selectable = false; 
  })
}

【讨论】:

  • 这样做会禁用中午之后的当天。 ?
  • 当然,您可以使用任何日期/时间作为上述today 的值——根据您的情况使用您需要的任何值。你可以试试var today = moment.utc().valueOf();
  • 不,即使这不起作用,即使使用const today = moment.utc().valueOf();,它也会继续禁用当前日期
猜你喜欢
  • 1970-01-01
  • 2016-09-28
  • 1970-01-01
  • 1970-01-01
  • 2013-04-13
  • 2014-06-01
  • 2016-07-03
  • 1970-01-01
  • 2016-05-12
相关资源
最近更新 更多