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

Posted

技术标签:

【中文标题】数据表 columndef 不适用于 dd/mm/yyyy【英文标题】:Datatable columndef not working for dd/mm/yyyy 【发布时间】:2017-11-02 03:22:09 【问题描述】:

我有一个格式为 dd/mm/yyyy 的日期列,用于引导数据表。我尝试对其进行排序有问题。所以我试图插入这个 columndef。结果还是一样,排序还是不正确。

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

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

【问题讨论】:

请按照此链接https://datatables.net/plug-ins/sorting/date-eu中的步骤进行操作 所以我必须包含那个额外的插件,我读过它不太清楚你能帮我描述一下吗? 如果你看到它给出的代码 columnDefs: [ type: 'date-eu', targets: 0 ] 那么这就是我所遵循的? 是的,你必须添加那个额外的插件。检查此链接https://***.com/questions/2862322/how-to-sort-by-date-with-datatables-jquery-plugin 您可以将我的答案标记为已接受。 【参考方案1】:

你必须为此添加这个插件:

参考此链接: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

【讨论】:

我已经添加了这些代码并保存为 date-eu.js 与我的 jquery.dataTables.min.js 和 dataTables.bootstrap.min.js 所在的文件夹相同的文件夹。但它似乎没有正常工作。 您是否在页面中添加了 date-eu.js 文件? 你检查过***刷新链接吗? 是的,我也在我的页面中添加了 date-eu.js。我也检查并点击了链接

以上是关于数据表 columndef 不适用于 dd/mm/yyyy的主要内容,如果未能解决你的问题,请参考以下文章

我正在使用 datepicker 进行日历,但它适用于 mm/dd/yyyy,但我希望它在 dd/mm/yyyy

角度 ag 网格不适用于角度 5

dd/mm/yyyy 格式的日期正则表达式,用于 javascript 验证

将输入日期数据类型更改为 DD/MM/YYYY 而不是 MM/DD/YYYY 需要 [重复]

分配“dd/MM/yyyy”数据时的日期时间,但它保存为“MM/dd/yyyy”

Angular 8 数据表日期排序问题 dd/mm/yyyy