orderby date angularjs of-repeat

orderby date angularjs ng-repeat

我正在尝试通过 'date' 与 ng-repeat 一起订购,但我的日期格式是 "date":"Sun, 01 Sep 2016 08:47:53 -0400"。我尝试使用 momentjs,但我得到了一个错误的列表。

请问我如何按日期订购

http://codepen.io/netwrkx/pen/WGbwgY?editors=101

<tr ng-repeat="expense in expenses | orderBy:'date'">
    <td>{{expense.name}}</td>
    <td>{{expense.amount}}</td>
    <td>{{expense.date |  amTimeAgo}} </td> 
</tr>
<tr ng-repeat="expense in expenses | orderBy:compareDateFunc">

$scope.compareDateFunc = function(dt) {
  return new Date(dt.date);
}

您可以创建自定义过滤器 dateOrder,为内置过滤器提供输入。

JS :

.filter('dateOrder',function(){

   return function(data){ 
     angular.forEach(data,function(val,key){
       val.dateTimestamp = new Date(val.date).getTime()

     });
     return data; 

   }  
});

将您的 html 定义为:

<tr ng-repeat="expense in expenses | dateOrder |orderBy :'dateTimestamp'">

这是工作codepen