按日期筛选角度数据

Angular filter data by date

本文关键字:数据 筛选 日期      更新时间:2023-09-26

我有一个json,如下所示,我正在使用角度服务接收它:

[
    {
        "id": 2,
        "order_status": "R",
        "order_date": "2015-09-12T07:58:24.733834Z",
        "update_timestamp": "2015-10-05T04:22:44.904227Z"
    },
    {
        "id": 8,
        "order_status": "D",
        "order_date": "2015-09-18T03:46:50.469051Z",
        "update_timestamp": "2015-09-23T19:19:31.658001Z"
    }
]

我将这些数据接收到变量$scope.order_items中,并通过order_status列进行过滤:

$scope.order_items = data;
$scope.received = ($scope.order_items.filter(function(item) { return (item.order_status == 'R');}));
$scope.delivered = ($scope.order_items.filter(function(item) { return (item.order_status == 'D');}));

现在,我尝试按列order_date过滤数据,以便将今天的所有数据条目都放入一个单独的变量中。我该如何做到这一点?

EDIT:刚刚意识到您实际上没有order_Date的Date()对象,所以在执行下面的==检查之前,您必须创建一个对象。

有很多好的Javascript日期操作库可用(而不是下面的setHours(…)技巧,但像这样的库正是您想要的。

       var Date today = new Date();
       var todaysDates = $filter('filter')($scope.order_items, function(item) {
          if(item.order_date.setHours(0,0,0,0) == today.setHours(0,0,0,0)) {
              return true;
          } else {
              return false;
          }
        });