DataTables终极日期/时间排序插件不使用Intl格式

时间:2015-09-22 22:39:07

标签: datatables

我正在尝试使用Ultimate日期/时间排序插件(https://datatables.net/blog/2014-12-18)对日期列进行排序

列正确显示格式化日期,Invaded the datetime-moment.js文件,根据文档,我补充说:

    $(document).ready(function() {  
         $.fn.dataTable.moment( 'LL', locale );
         $.fn.dataTable.moment( 'L h:mm', locale ); 

我的DataTables默认初始化是:

    $.extend( true, $.fn.dataTable.defaults, {
      dom: "<'row'<'col-xs-6'><'col-xs-6'f>r>t<'row'<'col-xs-6'l><'col-xs-6'p>>", 
      language: { url: langUrl },
      searching: true,
      ordering: true,
      paging: true,
      info: false,
      select: true
    } );

和具有Intl日期格式的ColumnDef是:

     columnDefs:  {
           targets: column_date,
           type: 'date',
           render: function ( data, type, full, meta ) {
             if(data){
               var mDate = moment(data);
               return (mDate && mDate.isValid()) ? mDate.format("LL") : "";
             }
             return "";
           }
         },
         {
           targets: column_time,
           type: 'date',
           render: function ( data, type, full, meta ) {
             if(data){
               var mDate = moment(data);
               return (mDate && mDate.isValid()) ? mDate.format("L h:mm") : "";
             }
             return "";
           }
         },           

这些列中的所有数据都显示此类值:

         "Dernière Utilisation":"2015-09-21",
         "Dernière Connexion":"2015-09-21 15:24",

我正确显示,未正确排序

table

我错了吗?还是一个bug?这个插件在&#39; en&#39;区域设置&#39;

1 个答案:

答案 0 :(得分:1)

您似乎使用的Ultimate date/time sorting plug-in与文章中描述的不同。

columnDefs选项使用以下代码:

columnDefs:  
     {
       targets: column_date,
       render: function ( data, type, full, meta ) {
          if(type === 'display'){
             if(data){
                var mDate = moment(data);
                data = (mDate && mDate.isValid()) ? mDate.format("LL") : "";
             }
         }

         return data;
       }
     },
     {
       targets: column_time,
       render: function ( data, type, full, meta ) {
         if(type === 'display'){
            if(data){
               var mDate = moment(data);
               data = (mDate && mDate.isValid()) ? mDate.format("L h:mm") : "";
            }
         }

         return data;
       }
     },

我相信你可以删除以下几行:

$.fn.dataTable.moment( 'LL', locale );
$.fn.dataTable.moment( 'L h:mm', locale );