使用angularjs基于时间禁用按钮

时间:2016-09-19 15:38:41

标签: javascript angularjs

您好我必须根据日期禁用按钮按钮,我的要求是我将拥有值为checkinStartDate和checkinEndDate

的json
{
    "checkinStartDate": "10/22/2016 09:10:04 AM",
    "checkinEndDate": "10/22/2016 19:10:04 PM"
}

例如今天的日期是2016年10月22日,那么条件如下所述。 我必须在checkinStartDate的 1小时(10/22/2016 08:10:04)之前启用按钮, 1小时(2016年10月22日20:10:04 PM)< / strong> checkinEndDate.other之后,此时间按钮应处于禁用模式  任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

假设您的对象已分配给$ scope.date 那你接下来需要做的是。

$scope.checkDate = function () {
  var ONE_HOUR = 60 * 60 * 1000; /* ms */
  var myDate = {
    "checkinStartDate": "10/22/2016 09:10:04 AM",
    "checkinEndDate": "10/22/2016 19:10:04 PM"
  }

  var checkInStart = new Date(myDate.checkinStartDate);
  var checkInEnd = new Date(myDate.checkinEndDate);

  var current = new Date();

  //only enable during this time
  if ((current.getTime() < checkInStart.getTime() + ONE_HOUR) && (current.getTime() + ONE_HOUR > checkInEnd.getTime()))
    return false;


  //otherwhile disable  
  return true;
}

在视图中,只需将其调用

即可
<button ng-disabled="checkDate()">View<button>

p / s:这只是一个想法,我不确定我的情况是否正确,因为我没有测试环境。 getTime()将返回自1970年1月1日午夜以来的毫秒数和指定的日期。然后你可以用它比较之前提前1小时进行比较。你明白我在说什么吗?