数据表columndef不适用于dd / mm / yyyy

时间:2017-06-01 06:08:51

标签: twitter-bootstrap date datatables

我有一个日期列,格式为dd / mm / yyyy,用于bootstrap数据表。我尝试排序它有问题。所以我试着插入这个columndef。结果相同,排序仍然不正确。

var table = $('#listTable').DataTable({
        responsive:true,

        "columnDefs": [
         { type: 'date-euro', targets: 0 }
        ]
    });

1 个答案:

答案 0 :(得分:0)

您必须为此添加此插件:

请参阅此链接:click here

添加此代码:

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
    "date-eu-pre": function ( date ) {
        date = date.replace(" ", "");

        if ( ! date ) {
            return 0;
        }

        var year;
        var eu_date = date.split(/[\.\-\/]/);

        /*year (optional)*/
        if ( eu_date[2] ) {
            year = eu_date[2];
        }
        else {
            year = 0;
        }

        /*month*/
        var month = eu_date[1];
        if ( month.length == 1 ) {
            month = 0+month;
        }

        /*day*/
        var day = eu_date[0];
        if ( day.length == 1 ) {
            day = 0+day;
        }

        return (year + month + day) * 1;
    },

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

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

这适用于数据表定义:

$('#example').dataTable( {
     columnDefs: [
       { type: 'date-eu', targets: 0 }
     ]
  } );

您也可以从此堆栈溢出链接中找到答案:click here

相关问题