我有一个ArrayCollection,我想按日期和时间排序(如果有两个项目具有相同的日期)。我按日期排序很好(YYYY / MM / DD),但我无法弄清楚时间位,时间是24小时格式,所以代码基本上与日期相同。
这是我用于日期排序的代码,它工作正常。
import mx.collections.SortField;
import mx.collections.Sort;
private function sort():void
{
var dataSortField:SortField = new SortField();
dataSortField.name = "date";
var arrayDataSort:Sort = new Sort();
arrayDataSort.fields = [dataSortField];
reminderXMLArray.sort = arrayDataSort;
reminderXMLArray.refresh();
}
答案 0 :(得分:2)
您可以使用此代码按日期和时间排序:
private function sort():void
{
var dataSortField:SortField = new SortField();
dataSortField.name = "date";
dataSortField.compareFunction = function (a:Object, b:Object) : int {
var na:Number = a.date.getTime();
var nb:Number = b.date.getTime();
if (na < nb)
return -1;
if (na > nb)
return 1;
return 0;
};
var arrayDataSort:Sort = new Sort();
arrayDataSort.fields = [dataSortField];
reminderXMLArray.sort = arrayDataSort;
reminderXMLArray.refresh();
}
答案 1 :(得分:0)
由于您要排序两个单独的字段,您只需使用Sort对象的字段Array添加两个排序字段:
var sort:Sort = new Sort();
var fields:Array = [ new SortField("date"), new SortField("time") ];
sort.fields = sort;