基于flex的日期和时间排序

时间:2016-07-27 10:42:41

标签: sorting date flex

这里我使用了日期和时间的排序功能,但它只是在日期排序而不是时间,我想根据日期和时间进行排序:

    private function dregdate_sortCompareFuction(itemA:Object, itemB:Object):int {
            var dt1:Date  = DateField.stringToDate(String(itemA.sbatchregdate),"DD/MM/YYYY");
            var dt2:Date  = DateField.stringToDate(String(itemB.sbatchregdate),"DD/MM/YYYY");               
            var dateA:Date = new Date(dt1);             
            var dateB:Date = new Date(dt2);         
            return ObjectUtil.dateCompare(dateA, dateB);}

请分享您的知识。 感谢

1 个答案:

答案 0 :(得分:0)

正如您可以通过您传递的格式看到的那样,DateField.stringToDate只关心日期,而不关心时间。

如果您的输入字符串是以下格式之一,则可以使用Date.parse:

  • MM / DD / YYYY HH:MM:SS TZD
  • HH:MM:SS TZD Day Mon / DD /
  • Mon DD YYYY HH:MM:SS
  • Day Mon DD HH:MM:SS TZD YYYY
  • Day DD Mon HH:MM:SS TZD YYYY
  • 周一/周五/周年纪念日:MM:SS TZD
  • YYYY / MM / DD HH:MM:SS TZD

但你的不是。

所以给这个,我使用正则表达式从字符串中提取单个值,然后手动构建Date对象,如:

var regex:RegExp = /^(\d+)\/(\d+)\/(\d+) (\d+):(\d+)$/i;
var data:Object = regex.exec(itemA.sbatchregdate);
var dateA:Date = new Date(o[3], o[2]-1, o[1], o[4], o[5]);

一旦您使用适当的时间值创建了两个日期,比较应该按预期工作。