2017-07-14 127 views
0

我目前正在尝试创建一个自定义过滤器,它将在我的系统中显示最新的最新文件。我正在使用AngularJS为了过滤我列出的数据。如何将日期与JavaScript中的字符串进行比较?

我遇到的问题是我的日期数据存储为一个字符串在我的json文件中,我不知道如何过滤它,所以它。

我的想法是通过将今天的日期存储为变量并将其与json文件存储日期进行比较来创建自定义过滤器。

这里是我的JSON文件的外观

{ 
    "data": [ 

     { 
      "title": "Something Exciting", 
      "description": "A TV show about something really exciting.", 
      "date": " 06/2017", 
      "link": "../pdf/whoReadsBooksAnyway.pdf" 
     }, 
     { 
      "title":"Stranger Things", 
      "description":"Getting back that 80's Steven King Vibe", 
      "date": "05/2017", 
      "link": "../pdf/AllAlongTheWatchTower.pdf" 
     } 
    ] 
} 

我需要显示的最新date领域的项目,所以我开始创建自定义过滤器:

app.filter('dateFilter', function($scope){ 

     $scope.getDatetime = new Date(); 

     var aaa = "../../../views/TvShows/json/shows.json" 
     $http.get(aaa).then(function maybe(response, date){ 
       $scope.data = reseponse.data.data; 
      }); 

     if($scope.getDatetime < $scope.data.date){ 
      return $scope.myFilter; 
     } else{ 
      console.log("it didn't work"); 
     } 
    }); 

的想法在过滤器后面是用http请求捕获日期,并将其与当前日期$scope.GetDatetime进行比较。我不确定如何构建过滤器。 xstatsx只是一个$scope对象,我从我的初始http获取请求返回。

var xurlx = '../../../views/TvShows/json/shows.json' 
      $http.get(xurlx).then(function(response, data){ 
       $scope.xstatsx = response.data.data; 
      }); 

在我的HTML我使用此过滤和只显示最近的日期:

<div class="well well-lg" style="display: inline-block;" ng-repeat="n in xstatsx | orderBy: '-date'" ng-show='0 == $index'> 

如何过滤我的输出,因此只显示最新的最新的 上市文件?

+0

新的Date()>新的日期( “01 /” +字符串+ “T00:00”) –

+0

@Jonasw不会帮我很多.. – ZombieChowder

+0

你可以显示这个对象吗?xstatsx' –

回答

1

试试这个:

reseponse.data.data.forEach((item)=>{ 
    let date = new Date(), 
    split = item.date.split("/"); 
    date.setDate(1); 
    date.setMonth(+(split[0]) - 1); 
    date.setYear(split[1]); 
    item.sort = date; 
}); 

,并在HTML中使用排序依据过滤排序键

<div ng-repeat="n in xstatsx | orderBy : 'sort' " ></div> 
+0

我可以在哪里插入这个,在我的过滤器代码或直接在我的控制器? – ZombieChowder

+0

是在控制器中插入 – fahad

+0

'没有定义reseponse'。在使用它之前,我是否需要确定其范围? 我刚才看到错字... OMG – ZombieChowder

相关问题