DataTables 和 moment.js 未正确按日期排序

And*_*ndy 3 jquery datatables

我正在尝试使用https://datatables.net/blog/2014-12-18上的信息使 DataTables 对一列dd/mm/yyyy格式的日期进行排序,例如11/10/2018(代表 2018 年 10 月 11 日)。

我包含了以下脚本 - 按此顺序:

  • jquery.dataTables.1.10.7.min.js(本地托管)
  • //cdn.datatables.net/plug-ins/1.10.19/sorting/datetime-moment.js
  • moment.js(版本 2.10.3,本地托管)

根据上面 URL 上的信息,我的 DataTables 初始化如下所示:

$(document).ready(function() {
    $.fn.dataTable.moment( 'd/m/Y' );

    $('#coursesTable').DataTable({"searching": false
    });
});
Run Code Online (Sandbox Code Playgroud)

但是当我单击日期标题时,#coursesTable它会给出以下输出:

在此处输入图片说明

显然这是错误的,因为如果日期是按时间顺序排列的——最近的在前——然后06/09/2017应该出现在之前07/08/2017——但这不是它们出现的顺序。

当以另一种方式(最旧的优先)订购它们时,它会给出相同的错误 - 即订单仍然不正确:

在此处输入图片说明

我不明白为什么会这样?

Dav*_*lek 6

根据Moment.js 文档,尝试将格式更改为此:

$.fn.dataTable.moment( 'DD/MM/YYYY' );

这是一个工作小提琴:http : //jsfiddle.net/4f275sa1/

正如@davidkonrad 所建议的那样,不需要 columnDefs。在这种情况下,'DD/MM/YYYY' 是正确的格式,因为该问题使用带有前导零的日期和月份。