【问题标题】:DataTables Ultimate date / time sorting plug-in not working with Intl formatsDataTables Ultimate 日期/时间排序插件不适用于国际格式
【发布时间】:2015-09-22 22:39:07
【问题描述】:

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

这些列正确显示了格式化日期,入侵了 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
    } );

和 ColumnDefs,国际日期格式是:

     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",

我得到了正确显示,没有正确排序

我错了吗?或者它是一个错误?这个插件在'en' locale'中运行良好

【问题讨论】:

    标签: datatables


    【解决方案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 ); 
    

    【讨论】:

      猜你喜欢
      • 2016-09-10
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      • 2013-07-04
      • 2015-01-24
      • 1970-01-01
      • 2016-12-11
      • 2017-10-28
      相关资源
      最近更新 更多