3

我正在尝试在 JavaScript 中按时间对数据进行排序。

How do I sort by time (format: 5:40 PM) in javascript for use with DataTables 中的答案?适用于数据集,但如果您包含更多时间,例如。晚上 9 点 30 分,上午 8 点 15 分,这些时间排序出现故障并处理不当。

我正在做同样的事情,但一次不少于 50 条记录。

4

1 回答 1

2

您可以使用以下排序功能:

jQuery.fn.dataTableExt.oSort['string-case-asc']  = function(x,y) {

  x = getTimeValue(x);
  y = getTimeValue(y);

  return x<y?-1:x>y?1:0;

};

jQuery.fn.dataTableExt.oSort['string-case-desc'] = function(x,y) {

  x = getTimeValue(x);
  y = getTimeValue(y);

    return x<y?1:x>y?-1:0;
};

和 getTimeValue() 方法:

function getTimeValue(x) {
  var time = x.match(/(\d+)(?::(\d\d))?\s*(P?)/);
  var h = parseInt(time[1],10) + (time[3] ? 12 : 0);
  if(!time[3] && parseInt(time[1],10)==12) h = 0;
  if(time[3] && parseInt(time[1],10)==12) h = 12;
  return h * 60 + ( parseInt(time[2],10) || 0 );
}

这里的工作示例

于 2012-05-02T15:22:38.993 回答