jquery - 数据表日期排序 dd/mm/yyyy 问题

标签 jquery datatables date-sorting

我正在使用名为 datatables 的 Jquery 插件

太棒了,但是我无法根据 dd/mm/yyyy 格式正确排序日期。

我查看了他们的支持格式,但这些修复似乎都不起作用。

这里有人可以帮助我吗?

最佳答案

2020 年更新:HTML 解决方案

由于 HTML 5 已经非常成熟,几乎所有主流浏览器都支持它。所以现在一个更简洁的方法是使用 HTML5 data attributes (maxx777 提供了 PHP 解决方案,我使用的是简单的 HTML)。对于我们场景中的非数字数据,我们可以使用 data-sortdata-order 属性并为其分配可排序的值。

HTML

<td data-sort='YYYYMMDD'>DD/MM/YYYY</td>

这里是working HTML solution

jQuery 解决方案

这里是working jQuery solution .

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"date-uk-pre": function ( a ) {
    var ukDatea = a.split('/');
    return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},

"date-uk-asc": function ( a, b ) {
    return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},

"date-uk-desc": function ( a, b ) {
    return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
} );
 

将上述代码添加到脚本中,并将带有 { "sType": "date-uk"} 的日期值的特定列设置为 null,如下所示:

$(document).ready(function() {
    $('#example').dataTable( {
        "aoColumns": [
            null,
            null,
            null,
            null,
            { "sType": "date-uk" },
            null
        ]
    });
    });

关于jquery - 数据表日期排序 dd/mm/yyyy 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12003222/

相关文章:

javascript - 单击 "link"时,导航 Pane 在下方展开

php - yajra/laravel-datatables 搜索不适用于 laravel 5.4

linux - 按 [M]M/[D]D/YYYY 对大文件排序

sql-server - 如何根据上次访问时间选择唯一行

javascript - .datepicker() 函数在第二次单击时起作用

javascript - 使用 Javascript 在 iOS 上触发类似 click() 的东西?

c# - 在 asp.net mvc razor 中使用 JQuery 范围 slider

jquery - Datatables TableTools 同一页面上的多个表

javascript - JQuery 数据表列的自定义可排序下拉列表

javascript - jqGrid日期排序(本地)不起作用