【问题标题】:jQuery dataTables sorting is not working for dd-mm-yyyy formatjQuery dataTables 排序不适用于 dd-mm-yyyy 格式
【发布时间】:2015-01-24 16:41:33
【问题描述】:

在我的项目中,我想对 dd-mm-yyyy 格式的日期进行排序。我在下面尝试过这样的

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

但这不起作用。此处仅对日期和月份进行排序,而不是基于年份。我从这里参考了Datatable date sorting dd/mm/yyyy issue

【问题讨论】:

  • 有人对此有答案吗?

标签: date datatables jquery-datatables


【解决方案1】:

我知道这是一个老问题,但如果您刚从 Google 来到这里,现在有一个内置的解决方案。

只需为元素添加一个 HTML5 属性:

<td data-th="Lastrun" data-order="[unixTimestamp]">
    [myWeirdDateFormat]
</td>

https://datatables.net/examples/advanced_init/html5-data-attributes.html

【讨论】:

  • 谢谢马克。好的,我会打的
【解决方案2】:

它对我来说开箱即用,但我的日期和时间不那么复杂,所以如果你使用这个http://datatables.net/plug-ins/sorting/ 可能是最好的@

【讨论】:

    【解决方案3】:

    带有隐藏的动态跨度元素

    在我的例子中,数据是从服务器动态检索的,所以我找到了这个解决方案

               var data = aResponce.noOfShipmentsTableData; //dynamic data from server
               for (var i = 0; i < data.length; i++) {
                var array = [];
                var pickUpDate = data[i]["pickUpDate"]; //date to sort
                var span = pickUpDate.split("/");
                if (span[1].length == 1) 
                    span[1] =  "0" + span[1];
                if (span[0].length == 1) 
                    span[0] =  "0" + span[0];
    
                span = "<span class='hideSpan'>"+span[2]+span[1]+span[0]+"</span>";
                var PickUpDateTd = "<td>"+span+pickUpDate+"</td>";
                array.push(PickUpDateTd); //push as many values you want in one row of datatable
    
                totalCtsBookedTbl.api().row.add(array); //totalCtsBookedTbl is reference variable to my datatable
            }
            totalCtsBookedTbl.api().draw();
    

    .hideSpan {
      display: none;
    }

    【讨论】:

      猜你喜欢
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      相关资源
      最近更新 更多