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)
}
})
@卡马尔:没问题。如果一切都清楚,请将帖子标记为答案:)