Die Sortierung nach einem ISO-formatierten Datum kann sehr aufwendig sein, es sei denn, Sie beschränken die Clients auf die neuesten und besten Browser, die den korrekten Zeitstempel durch Date-parsing der Zeichenkette erstellen können.
Wenn Sie sicher Ihrer Eingaben, und Sie wissen es wird immer yyyy-mm-ddThh:mm:ss und GMT (Z) sein Sie können die Ziffern aus jedem Glied extrahieren und sie wie ganze Zahlen vergleichen
array.sort(function(a,b){
return a.updated_at.replace(/\D+/g,'')-b.updated_at.replace(/\D+/g,'');
});
Wenn das Datum anders formatiert werden kann, müssen Sie vielleicht etwas für Leute mit Iso-Problemen hinzufügen:
Date.fromISO: function(s){
var day, tz,
rx=/^(\d{4}\-\d\d\-\d\d([tT ][\d:\.]*)?)([zZ]|([+\-])(\d\d):(\d\d))?$/,
p= rx.exec(s) || [];
if(p[1]){
day= p[1].split(/\D/).map(function(itm){
return parseInt(itm, 10) || 0;
});
day[1]-= 1;
day= new Date(Date.UTC.apply(Date, day));
if(!day.getDate()) return NaN;
if(p[5]){
tz= (parseInt(p[5], 10)*60);
if(p[6]) tz+= parseInt(p[6], 10);
if(p[4]== '+') tz*= -1;
if(tz) day.setUTCMinutes(day.getUTCMinutes()+ tz);
}
return day;
}
return NaN;
}
if(!Array.prototype.map){
Array.prototype.map= function(fun, scope){
var T= this, L= T.length, A= Array(L), i= 0;
if(typeof fun== 'function'){
while(i< L){
if(i in T){
A[i]= fun.call(scope, T[i], i, T);
}
++i;
}
return A;
}
}
}
}