2016-07-27 3 views
0

здесь я использовал функцию сортировки по дате и времени, но это единственный вид, на дату не время, я хочу сортировки на основе как дата и время:сортировки по дате и времени в гибком

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);} 

любезно пожалуйста делитесь своими знаниями. спасибо

+0

Если ваш ввод содержит только дату, как предполагает ваш формат ввода в методе stringToDate, все созданные объекты Date будут иметь время, установленное в 00:00. Что такое свойство sbatchregdate? содержит ли он информацию о времени? в каком формате – alebianco

+0

да мой sbatchregdate содержит 28/07/2016 12:55 этот формат (дата и время), поэтому я хочу сортировать по дате со временем – Vicky

ответ

0

Как вы можете видеть по формату, который вы проходите, DateField.stringToDate заботится только о датах, а не о времени.

Вы можете использовать Date.parse, если ваша входная строка была в одном из следующих форматов:

  • MM/DD/YYYY HH: MM: SS TZD
  • HH: MM: SS TZD день пн/DD/
  • пн DD YYYY HH: MM: SS
  • день пн DD HH: MM: SS TZD YYYY
  • день DD пн HH: MM: SS TZD YYYY
  • пн/DD/YYYY HH: MM : SS TZD
  • ГГГГ/ММ/ДД ЧЧ: ММ: СС 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]); 

когда у вас есть две даты, созданные с правильные значения времени, сравнение должно работать должным образом.

Смежные вопросы