我正在尝试在 JavaScript 中按时间对数据进行排序。
How do I sort by time (format: 5:40 PM) in javascript for use with DataTables 中的答案?适用于数据集,但如果您包含更多时间,例如。晚上 9 点 30 分,上午 8 点 15 分,这些时间排序出现故障并处理不当。
我正在做同样的事情,但一次不少于 50 条记录。
我正在尝试在 JavaScript 中按时间对数据进行排序。
How do I sort by time (format: 5:40 PM) in javascript for use with DataTables 中的答案?适用于数据集,但如果您包含更多时间,例如。晚上 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 );
}