如何比较角度ng级中的日期

时间:2015-12-29 19:18:14

标签: javascript angularjs

我有以下代码

<div ng-class"{'has-error': myInputForm.$valid}">
  ...other stuff....
</div>

我喜欢这种验证,上面的代码也适用。我想要做的是比较两个日期值,使它看起来像这样....

<div ng-class"{'has-error': myStartDate < eventStartDate}">
  ...other stuff....
</div>

这不起作用,也没有,但如果它确实

会很好
<div ng-class"{'has-error': moment(myStartDate).isBefore(eventStartDate)}">
  ...other stuff....
</div>

我可以创建一个函数来根据参数

返回类
<div ng-class"getClass(myStartDate,eventStartDate)">
  ...other stuff....
</div>

但我还有其他需要检查的东西,所以我想内联这样做。让我知道你有什么想法,并提前感谢。

1 个答案:

答案 0 :(得分:2)

不要忘记ng-class之后的等号。

你有ng-class"{'has-error': myStartDate < eventStartDate}">。它应该是ng-class="{'has-error': myStartDate < eventStartDate}"=非常重要!

另外,请确保您的日期确实是日期而不是字符串。

这是一个适合我的小型演示页面。您可以向下调整我的开始日期,并查看已应用的错误类。

祝你好运!

<!doctype html>
<html ng-app="myApp">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script>
    angular.module('myApp', [])
      .controller('MyController', ['$scope', function($scope) {
        $scope.myStartDate = new Date(2015, 6, 29);
        $scope.eventStartDate = new Date(2015, 6, 28);
      }]);
    </script>
    <style> .has-error { background-color: red; } </style>
  </head>
  <body>
    <form ng-controller="MyController">
      <label for="start-in">My Start Date</label>
      <input id="start-in" type="date" ng-model="myStartDate">
      <label for="event-in">Event Start Date</label>
      <input id="event-in" type="date" ng-model="eventStartDate">
      <div ng-class="{'has-error': myStartDate < eventStartDate}">
        {{myStartDate | date: "MM/dd/yyyy"}} -- {{eventStartDate | date: "MM/dd/yyyy"}}
      </div>
    </form>
  </body>
</html>