Trier la date en Javascript

j'ai récupéré à partir de la requête ajax un flux de nouvelles. Dans cet objet, il y a une date dans ce format:

Wed, 22 May 2013 08:00:00 GMT

je voudrais trier tous les objets par jour. Est-il possible de le faire en utilisant Javascript ?

mise à JOUR

en utilisant ce morceau de code ça marche très bien !

array.sort(function(a,b){
var c = new Date(a.date);
var d = new Date(b.date);
return c-d;
});
0
demandé sur pxrb66 2013-05-22 14:59:39

3 réponses

1) vous ne pouvez pas trier les objets. L'ordre des clés de l'objet est arbitraire.

2) Si vous voulez trier un tableau par date( et ils sont déjà obects date), faites ce qui suit:

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

si vous devez d'abord les convertir en objets date, faites ce qui suit (en suivant la structure des données selon votre commentaire ci-dessous):

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

exemple

7
répondu Christoph 2014-09-21 15:31:52
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)
1
répondu Kapil gopinath 2013-08-29 10:17:25

vous pouvez également utiliser un underscore / lodash sortBy

voici l'utilisation de underscore js pour trier la date:

 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'));
0
répondu Woppi 2016-01-16 13:34:31