我正在使用datatable jQuery插件;它在排序包含文本和数字的列时工作正常,但我在排序包含日期值的列时遇到问题。
例如,当我点击日期栏时,我得到:
01-03-2012
27-02-2012
29-02-2012
...
...
然而真正的顺序应该是这样的:
01-03-2012
29-02-2012
27-02-2012
注意:我正在使用法国日期格式d-m-Y
。
答案 0 :(得分:1)
您是否看过Sorting plug-ins page?
以下内容直接从该页面复制。您可能需要稍微调整一下代码(例如,在-
而不是/
上拆分等等),但大部分工作都是为您完成的:
日期(日/月/年)
DataTables内部日期排序回复Date.parse(),它是一部分 的Javascript语言,但您可能希望按日期排序 不认识。以下是用于排序日期的插件 格式dd / mm / yy。请注意,提供了类型检测插件 在需要时自动选择这种类型的排序。
jQuery.fn.dataTableExt.oSort['uk_date-asc'] = function(a,b) {
var ukDatea = a.split('/');
var ukDateb = b.split('/');
var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['uk_date-desc'] = function(a,b) {
var ukDatea = a.split('/');
var ukDateb = b.split('/');
var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};