【问题标题】:DataTable moments is not working for sorting Date-Time column?DataTable 时刻不适用于对日期时间列进行排序?
【发布时间】:2016-09-26 03:42:26
【问题描述】:

请不要标记为重复,因为我在任何地方都没有找到解决方案。

以下行无法在DataTable 中对日期和时间进行排序。

其次,我使用以下代码使排序工作,但它没有:

$.fn.dataTable.moment('HH:mm dd/mm/YY');
    //$.fn.dataTable.moment( 'DD-MM-YYYY HH:mm' );

对于DataTable 初始化,我使用了以下代码:

$('.dataTable').DataTable({
    ordering: true,
    paging: true,
    searching: true,
    dom: 'Bftripl',
    buttons: [
        'excelHtml5',
        'csvHtml5',
        'pdfHtml5'
    ],
    "columnDefs": [
        //{ "type": "date-euro", targets: 1 }
        //{ "sType": "date-uk", targets: 1 }
    ]
});

我已添加文件:datetime-moment.js

没有任何代码可用于整理date column,因此请任何人帮助或在 jsFiddle 上提供示例。

提前感谢朋友:)

对于 Anan,您的代码给了我以下输出: 使用您更新的代码后,但无法传递数据,因为我正在使用 php 将数据输入表中......

$.fn.dataTable.moment( 'HH:mm DD/MM/YYYY' );
$('.dataTable').DataTable({
    ordering: true,
    paging: true,
    searching: true,
    dom: 'Bftripl',
    buttons: [
        'excelHtml5',
        'csvHtml5',
        'pdfHtml5'
    ]
});

但不幸的是没有工作:(

【问题讨论】:

  • 您能否为您的代码创建一个JSFiddle 并将其添加到您的问题中。这将有助于解决您的问题。
  • 你的时间格式应该是'YYYY'。就像'2016',而不是'16',你可以在live.datatables.net/xedayaxi/1/edit试试。
  • 嗨,我也尝试过 YYYY,但没有任何效果....:(抱歉,我尝试了几乎所有选项,这就是为什么我问是否有人为我创建示例。我查看了您的示例并且您正在将数据放入您的 js 数据表中,但是您能否检查是否直接将您的日期时间提供到 html 表的列中,那么它将无法正常工作,因为我尝试再次测试您的代码但没有成功。:(

标签: php jquery datatables momentjs


【解决方案1】:

这是因为你的时间格式不对;看这个:

有我的例子:http://live.datatables.net/xedayaxi/1/edit

根据作者的说法,将数据放在html中,看看这个例子:

$(document).ready( function () {

  $.fn.dataTable.moment( 'HH:mm DD/MM/YYYY' );
   
  var table = $('#example').DataTable({
    ordering: true,
    paging: true,
    searching: false,

  });
} );
<!DOCTYPE html>
<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>

    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
    <script src="//cdn.datatables.net/plug-ins/1.10.12/sorting/datetime-moment.js"></script>
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div class="container">
<table id="example" class="display" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th>time</th>

            </tr>
        </thead>
        <tfoot>
            <tr>
                <th>time</th>

            </tr>
        </tfoot>
        <tbody>
            <tr>
                <td>19:46 30/06/2016</td>

            </tr>
            <tr>
                <td>14:46 29/06/2016</td>

            </tr>
            <tr>
                <td>19:46 29/07/2018</td>

            </tr>
            <tr>
                <td>02:16 29/06/2016</td>

            </tr>
            <tr>
                <td>16:46 29/06/2017</td>

            </tr>

          
        </tbody>
    </table>
    </div>
  </body>
</html>

【讨论】:

  • 您好朋友感谢您的帮助,但它不起作用,因为您可以在我更新的答案中看到屏幕截图
  • 你关于年份的时间格式应该是'YYYY'。就像'2016',而不是'16'
  • 嗨,我也尝试过 YYYY,但没有任何效果....:(抱歉,我尝试了几乎所有选项,这就是为什么我问是否有人为我创建示例。我查看了您的示例并且您正在将数据放入您的 js 数据表中,但是您能否检查是否直接将您的日期时间提供到 html 表的列中,那么它将无法正常工作,因为我尝试再次测试您的代码但没有成功。:(
  • @user2268488 试试我更新的答案,这对我来说很好;
  • 我遇到了类似的问题,问题是我在创建数据表后设置时间格式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-01
  • 2017-10-28
  • 2021-09-28
  • 2020-12-22
  • 2020-06-24
  • 1970-01-01
相关资源
最近更新 更多