AngularJS:使用日期过滤大于值的值

时间:2014-11-07 08:59:43

标签: angularjs date filter

我有一个json文件,其中包含多个具有开始日期的事件。 我想制作一个过滤器,以显示开始日期仅大于用户指定日期的事件。

用户提供日期的输入:

<label for="rechercheDate">Date de début</label>
<input type="text" id="rechercheDateDebut" class="form-control" datepicker-popup="{{format}}" ng-model="dateDebut" is-open="opened" min-date="minDate" max-date="'2015-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
</span>

(我使用UI引导程序中的日期选择器(http://angular-ui.github.io/bootstrap/))

事件和开始日期显示为:

<li ng-repeat="resultats in resultatsJSON.results">
    Start date: {{resultats.tra_start_date | date:'dd-MM-yyyy'}} 
    ....

为了做我想做的事,我想我需要在我的ng-repeat中制作一个过滤器,例如:

<li ng-repeat="resultats in resultatsJSON.results |filter:resultats.tra_start_date>dateDebut">

这篇文章AngularJS : ng-repeat filter when value is greater than似乎相似但不适用于日期格式。我该怎么做?

这是一个解释我的问题的方法:http://jsfiddle.net/Daviloppeur/egf0kjzc/

1 个答案:

答案 0 :(得分:2)

看看filter docs

  

{{filter_expression | filter:expression:comparator}}

您应该为表达式使用Object,并使用比较器来检查日期:

$scope.gteComparator = function(a,b) {
  return new Date(a) >= new Date(b);
};

像这样使用它:

<li ng-repeat="item in results | filter:{ start_date: start }:gteComparator>