如何根据当前日期过滤JSON数据

时间:2014-08-17 14:07:32

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我想问一下angularJS。

我在这里有json

var friends = [
{
"id":1,
"Tanggal":"\/Date(1408060800000)\/",
"Nama":"Hari Departemen Agama Republik Indonesia"
},
{
"id":2,
"Tanggal":"\/Date(1388880000000)\/",
"Nama":"Hari Korps Wanita Angkatan Laut"
},

查看

 <ul>
   <li ng-repeat="friend in friends | filter:" >{{friend.Tanggal.substr(6,13) | date: 'dd MMMM' }}
    {{friend.Nama}}
   </li>
 </ul>

这是我的控制器

.controller('FriendsCtrl', function($scope, Friends) {

 $scope.friends = Friends.all();

 })

我想过滤变量&#34; Tanggal&#34;将数据显示为当前日期(今天)。所以今天的数据只会显示出来。

需要帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用自定义过滤器:

app.filter('todayFilter', function() {
  return function(items, field) {

    var newItems = [];

    var currentDate = new Date();
    var tomorrow = new Date();

    currentDate.setHours(0, 0, 0, 0);
    tomorrow.setDate(currentDate.getDate() + 1);

    angular.forEach(items, function(item) {
      if (item[field] >= currentDate && item[field] <= tomorrow) {
        newItems.push(item);
      }
    });

    return newItems;
  }
});

并像这样应用:

<ul>
  <li ng-repeat="friend in friends | todayFilter: 'Tanggal'" >{{friend.Tanggal.substr(6,13) | date: 'dd MMMM' }}
    {{friend.Nama}}
  </li>
</ul>

这样您就可以在应用的其他部分重复使用过滤器。

以下是一名说明:http://plnkr.co/edit/qga1POO1nV0kaEzXUuFH?p=preview

的傻瓜

希望有所帮助。