3

JavaScript でデータを時間順に並べ替えようとしています。

DataTables で使用する JavaScript で時間 (形式: 午後 5 時 40 分) で並べ替えるにはどうすればよいですか?の回答 データセットに対して機能しますが、より多くの時間を含める場合、たとえば. 午後 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 に答える