Javascript 订单日期过滤器

Javascript 订单日期过滤器,javascript,angularjs,date,angularjs-orderby,Javascript,Angularjs,Date,Angularjs Orderby,嗨,我是一个初学者。我在使用带有orderBy过滤器的日期比较时遇到问题。问题是过滤器不考虑月份和年份。以下是代码片段(也可在上找到) 脚本 var list = [ { name: 'Jon', joining_date:'23/10/2015', age: 23 }, { name:'Viki', joining_date:'24/01/2015', age: 20 }, { name: 'Abc', joini

嗨,我是一个初学者。我在使用带有
orderBy
过滤器的日期比较时遇到问题。问题是过滤器不考虑月份和年份。以下是代码片段(也可在上找到)

脚本

var list = [
  {
    name: 'Jon',
    joining_date:'23/10/2015', 
    age: 23
  }, {
    name:'Viki', 
    joining_date:'24/01/2015',
    age: 20
  }, {
    name: 'Abc',
    joining_date:'25/10/2015',
    age: 43
  }, {
    name: 'XYZ', 
    joining_date:'28/10/2015',
    age: 21
  }
];

var empApp = angular.module('emp-list', []);
empApp.controller('emp-table',function($scope){
    $scope.data = list;
})
Name    Joining Date    Age
Jon      23/10/2015     23
Viki     24/01/2015     20
Abc      25/10/2015     43
XYZ      28/10/2015     21
var list = [{
                        name: 'Jon',
                        joining_date:'2015-10-23', 
                        age: 23
                    },
                    {
                        name:'Viki', 
                        joining_date:'2015-01-24',
                        age: 20
                    },
                    {
                        name: 'Abc',
                        joining_date:'2015-10-25',
                        age: 43
                    },
                    {
                        name: 'XYZ', 
                        joining_date:'2015-10-21',
                        age: 21
                }];


var empApp = angular.module('emp-list', []);
empApp.controller('emp-table',function($scope){
    $scope.data = list;

    $scope.dateFormate = function(joinDate){
        return new Date(joinDate)
    }
})
HTML

<div ng-app="emp-list">
  <div class="search-box">
    <input type="text" ng-model="searchKeyword"></input>
  </div>
  <div ng-controller="emp-table">
    <table width="100%">
      <tr>
        <th width="33%">Name</th>
        <th width="33%">Joining Date</th>
        <th width="33%">Age</th>
      </tr>
      <tr ng-repeat="lists in data | filter: searchKeyword | orderBy : 'joining_date'">
         <td>{{lists.name}}</td>
         <td>{{lists.joining_date}}</td>
         <td>{{lists.age}}</td>
       </tr>
     </table>
  </div>
</div>

这是因为您的加入日期是一个字符串,而不是日期对象。结果,
orderBy
将它们作为字符串进行比较。以下是您的固定示例:


您还可以使用自定义函数将这些字符串与某些类型转换进行比较。查看文档页面:。

我在不更改json数据的情况下又得到了一个解决方案。。请检查我下面的代码

我刚刚创建了一个函数,它将日期从字符串转换为日期格式

$scope.dateFormate = function(joinDate){
        return new Date(joinDate)
    }
脚本

var list = [
  {
    name: 'Jon',
    joining_date:'23/10/2015', 
    age: 23
  }, {
    name:'Viki', 
    joining_date:'24/01/2015',
    age: 20
  }, {
    name: 'Abc',
    joining_date:'25/10/2015',
    age: 43
  }, {
    name: 'XYZ', 
    joining_date:'28/10/2015',
    age: 21
  }
];

var empApp = angular.module('emp-list', []);
empApp.controller('emp-table',function($scope){
    $scope.data = list;
})
Name    Joining Date    Age
Jon      23/10/2015     23
Viki     24/01/2015     20
Abc      25/10/2015     43
XYZ      28/10/2015     21
var list = [{
                        name: 'Jon',
                        joining_date:'2015-10-23', 
                        age: 23
                    },
                    {
                        name:'Viki', 
                        joining_date:'2015-01-24',
                        age: 20
                    },
                    {
                        name: 'Abc',
                        joining_date:'2015-10-25',
                        age: 43
                    },
                    {
                        name: 'XYZ', 
                        joining_date:'2015-10-21',
                        age: 21
                }];


var empApp = angular.module('emp-list', []);
empApp.controller('emp-table',function($scope){
    $scope.data = list;

    $scope.dateFormate = function(joinDate){
        return new Date(joinDate)
    }
})

@卡马尔:没问题。如果一切都清楚,请将帖子标记为答案:)