按日期排序的数据表仅对该日进行排序

时间:2015-05-16 04:49:24

标签: php jquery sorting datatables date-sorting

我有一个Datatable这是一个项目列表,我想将日期列排序为降序。 它有效,但它只排序一天。

我想要的是最后添加的项目。

我的脚本是:

<script>
       $(function(){
                  /* Initialize Bootstrap Datatables Integration */
            App.datatables();

            /* Initialize Datatables */
            $('#manage-table').dataTable({
                "aoColumnDefs": [ { "bSortable": false, "aTargets": [ 0 ] } ],
                "iDisplayLength": 10,
                "aLengthMenu": [[10, 20, -1], [10, 20, "All"]],
                "aaSorting": [[ 3, "desc" ]] //date column

            });

            /* Add placeholder attribute to the search input */
            $('.dataTables_filter input').attr('placeholder', 'Search'); 
       });
       </script>  

1 个答案:

答案 0 :(得分:0)

您需要扩展DataTables排序功能,以格式DD-MM-YYYY对日期进行排序。从您的初始化代码判断,很可能您正在使用DataTables 1.9.x。

请参阅下面的更新代码,我省略了尚未更改的代码:

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    "date-uk2-pre": function (a) {
        if (a == null || a == "") {
            return 0;
        }
        var ukDatea = a.split('-');
        return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
    },
    "date-uk2-asc": function (a, b) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    },
    "date-uk2-desc": function (a, b) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
});

/* Initialize Datatables */
$('#manage-table').dataTable({
    "aoColumnDefs": [ 
       { "bSortable": false, "aTargets": [ 0 ] },
       { "sType": "date-uk2", "aTargets": [ 3 ] }
    ],
    "iDisplayLength": 10,
    "aLengthMenu": [[10, 20, -1], [10, 20, "All"]],
    "aaSorting": [[ 3, "desc" ]] //date column
});

我修改了原始date_uk排序插件,按DD-MM-YYYY而不是DD/MM/YYYY排序。

有关详细信息,请参阅DataTables 1.9.x date_uk sorting plug-inDataTables 1.10.x date_uk sorting plug-in