我从ajax查询中获取了一条新闻源。在这个对象中,有一个以以下格式表示的日期:
Wed, 22 May 2013 08:00:00 GMT
我想按照日期对所有对象进行排序。是否可以使用Javascript实现?
更新
使用这段代码可以正常工作!
array.sort(function(a,b){
var c = new Date(a.date);
var d = new Date(b.date);
return c-d;
});
我从ajax查询中获取了一条新闻源。在这个对象中,有一个以以下格式表示的日期:
Wed, 22 May 2013 08:00:00 GMT
我想按照日期对所有对象进行排序。是否可以使用Javascript实现?
更新
使用这段代码可以正常工作!
array.sort(function(a,b){
var c = new Date(a.date);
var d = new Date(b.date);
return c-d;
});
1) 你无法对对象进行排序。对象键的顺序是任意的。
2) 如果你想按日期对数组进行排序(且它们已经是日期对象),请执行以下操作:
array.sort ( function (date1, date2){
return date1 - date2
});
如果您需要首先将它们转换为日期对象,请按照以下步骤操作(根据您在下面评论中提供的数据结构):array.sort ( function (a, b){
return new Date(a.pubDate) - new Date(b.pubDate);
});
function(a,b){new Date(a.pubDate)-new Date(b-pubDate)}
。 - Christoph var log = [{date: '2016-01-16T05:23:38+00:00', other: 'sample'},
{date: '2016-01-13T05:23:38+00:00',other: 'sample'},
{date: '2016-01-15T11:23:38+00:00', other: 'sample'}];
console.log(_.sortBy(log, 'date'));
这些链接是关于 JavaScript 库中的“sortBy”函数的页面。sorting dates ascending or descending
times = ["01-09-2013", "01-09-2013", "27-08-2013", "27-08-2013", "28-08-2013", "28-08-2013", "28-08-2013", "28-08-2013", "29-08-2013", "29-08-2013", "30-08-2013", "30-08-2013", "31-08-2013", "31-08-2013"]
function dmyOrdA(a,b){ return myDate(a) - myDate(b);}
function dmyOrdD(a,b){ return myDate(b) - myDate(a);}
function myDate(s){var a=s.split(/-|\//); return new Date(a[2],a[1]-1,a[0]);}
times.sort(dmyOrdA);
console.log(times)