使用Datatable jQuery插件对日期值进行排序

时间:2012-03-01 16:28:49

标签: jquery datatables

我正在使用datatable jQuery插件;它在排序包含文本和数字的列时工作正常,但我在排序包含日期值的列时遇到问题。

例如,当我点击日期栏时,我得到:

01-03-2012
27-02-2012
29-02-2012
...
...

然而真正的顺序应该是这样的:

01-03-2012
29-02-2012
27-02-2012

注意:我正在使用法国日期格式d-m-Y

1 个答案:

答案 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));
};