我有一个骨干集合,其中包含一系列与其关联的日期属性的模型。我想根据他们的日期对它们进行排序。所以最新的日期首先等等。 什么是最好的解决方法。
日期的格式如下,这是一个基本的日期对象。日期{Mon Mar 05 2012 23:30:00 GMT-0500(EST)}
由于
答案 0 :(得分:36)
您有Date对象,因此您可以使用getTime
将它们转换为数字,然后取消这些数字以获得最新的日期。如果你想保持你的收藏品排序,那么比较像这样:
C = Backbone.Collection.extend({
//...
comparator: function(m) {
return -m.get('date').getTime();
}
});
会做到这一点。演示(请打开你的控制台):http://jsfiddle.net/ambiguous/htcyh/
Backbone collection include下划线的sortBy
所以你可以进行一次性排序:
var sorted = c.sortBy(function(m) { return -m.get('date').getTime() });
演示:http://jsfiddle.net/ambiguous/FF5FP/
或者您可以使用toArray
获取正常的JavaScript数组并使用标准sort
而不使用getTime
:
var sorted = c.toArray().sort(function(a, b) {
a = a.get('date');
b = b.get('date');
if(a > b)
return -1;
if(a < b)
return 1;
return 0;
});
答案 1 :(得分:3)
如果你有日期信息的字符串,你可以....
C = Backbone.Collection.extend({
///...
comparator: function(m) {
return -Date.parse(m.get('datestring'));
}
});