Подтвердить что ты не робот

Дата сортировки в Javascript

Я извлек из ajax запрос в ленту новостей. В этом объекте есть дата в этом формате:

Wed, 22 May 2013 08:00:00 GMT

Я хотел бы отсортировать все объекты по дате. Можно ли это сделать с помощью Javascript?

UPDATE

Используя этот кусок кода, он отлично работает!

array.sort(function(a,b){
var c = new Date(a.date);
var d = new Date(b.date);
return c-d;
});
4b9b3361

Ответ 1

1) Вы не можете сортировать объекты. Порядок ключей объекта произвольный.

2) Если вы хотите отсортировать массив по дате (и они уже являются объектами даты), выполните следующие действия:

array.sort ( function (date1, date2){
     return date1 - date2
});

Если вам сначала нужно преобразовать их в объекты даты, выполните следующие действия (следуя структуре данных в соответствии с вашим комментарием ниже):

array.sort ( function (a, b){
       return new Date(a.pubDate) - new Date(b.pubDate);
});

Пример

Ответ 2

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)

Ответ 3

Вы также можете использовать знак подчеркивания /lodash sortBy

Здесь используется символ подчеркивания js для сортировки даты:

 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'));