JavaScript でデータを時間順に並べ替えようとしています。
DataTables で使用する JavaScript で時間 (形式: 午後 5 時 40 分) で並べ替えるにはどうすればよいですか?の回答 データセットに対して機能しますが、より多くの時間を含める場合、たとえば. 午後 9 時 30 分、午前 8 時 15 分、これらの時間はソートが失敗し、誤った処理を行います。
私は同じ並べ替えに取り組んでいますが、一度に 50 件以上のレコードを処理しています。
JavaScript でデータを時間順に並べ替えようとしています。
DataTables で使用する JavaScript で時間 (形式: 午後 5 時 40 分) で並べ替えるにはどうすればよいですか?の回答 データセットに対して機能しますが、より多くの時間を含める場合、たとえば. 午後 9 時 30 分、午前 8 時 15 分、これらの時間はソートが失敗し、誤った処理を行います。
私は同じ並べ替えに取り組んでいますが、一度に 50 件以上のレコードを処理しています。
次の並べ替え関数を使用できます。
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 );
}