Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中将日期与字符串进行比较?_Javascript_Angularjs_Json_Date - Fatal编程技术网

如何在JavaScript中将日期与字符串进行比较?

如何在JavaScript中将日期与字符串进行比较?,javascript,angularjs,json,date,Javascript,Angularjs,Json,Date,我目前正在尝试创建一个自定义过滤器,该过滤器将显示系统中最新的文件。我正在使用AngularJS来过滤我列出的数据 我遇到的问题是,我的日期数据以字符串形式存储在json文件中,我不知道如何对其进行过滤以使其生效 我的想法是创建一个自定义过滤器,将今天的日期存储为变量,并将其与json文件存储的日期进行比较 以下是我的json文件的外观: { "data": [ { "title": "Something Exciting",

我目前正在尝试创建一个自定义过滤器,该过滤器将显示系统中最新的文件。我正在使用AngularJS来过滤我列出的数据

我遇到的问题是,我的日期数据以字符串形式存储在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"
        }
    ]
}
我需要按最新的
日期
字段显示项目,因此我开始创建一个自定义过滤器:

 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");
        }
    });
在我的HTML中,我使用此选项筛选并仅显示最近的日期:

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

如何过滤输出,使其仅显示最新的信息 列出的文件

试试这个:

 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中使用排序键



new Date()>new Date(“01/”+string+“T00:00”)@Jonasw这对我没什么帮助..你能给我看看这个对象吗
xstatsx
@zombieChowder它会。。。请试着理解这一点…@RahulArora刚刚对这个问题进行了编辑。我应该在哪里插入这个,在我的过滤代码中还是直接在我的控制器中?是的,在控制器中插入
重新应答没有定义。在使用它或其他东西之前,我必须先检查它吗?我刚刚看到输入错误…omgfirstly调用json文件
$http.get(xurlx).then(函数(响应,数据){$scope.xstatsx=response.data.data;})排序无法正常工作。每当我介绍另一个数据为:
{“title”:“xxxxxxxxxxxxxxxxxxxxxxxxxxxx”,“description”:“月度报告”,“日期”:“06/2017”,“link”:“xxxxxxxxxxxxxxxxxxxx”}
的对象,并将其他对象的日期更改为小于06,它不会将其放在首位。
 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;
});  
<div ng-repeat="n in xstatsx | orderBy : 'sort' " ></div>