数据表中的排序日期

Jor*_*mme 5 datatables momentjs

我正在尝试对数据表中的日期进行排序,例如DD/MM/YYYY(day,month,year)。我正在关注https://datatables.net/plug-ins/sorting/

但所有日期排序似乎都已弃用,并指向datetime插件:https : //datatables.net/blog/2014-12-18

我似乎无法使datetime插件正常工作。我尝试了旧的约会方式。初始化看起来像这样:

var historiektable = $('#dataTableHistoriek').DataTable({
    "paging" : false,
    "ordering" : true,
    "scrollCollapse" : true,
    "searching" : false,
    "columnDefs" : [{"targets":3, "type":"date"}],
    "bInfo": true
});
Run Code Online (Sandbox Code Playgroud)

如果不进行排序,它将显示如下表结果:

没有排序,我从后端得到

当我将ordering:true2016年的2个日期显示在列表中的其他位置时(因此,您的期望不正确)

带日期排序

一切都指向关键时刻,我想我需要对此进行排序。但是我不确定如何。

我在$.fn.dataTable.moment('DD.MM.YYYY');某个地方看到过,但我知道该fn功能不适用于最新版本的数据表了吗?

有人知道如何对日期进行排序吗?

Gyr*_*com 6

使用date-eu排序插件以格式对日期进行排序DD/MM/YY

包括以下JS文件,//cdn.datatables.net/plug-ins/1.10.11/sorting/date-eu.js并使用以下代码:

var historiektable = $('#dataTableHistoriek').DataTable({
    "paging" : false,
    "ordering" : true,
    "scrollCollapse" : true,
    "searching" : false,
    "columnDefs" : [{"targets":3, "type":"date-eu"}],
    "bInfo": true
});
Run Code Online (Sandbox Code Playgroud)


小智 6

Gyrocode.com的例子似乎是最有效的。最近的一个解决方案说使用Moments.js,但它在我的情况下不起作用。date-eu已被DataTables弃用,但它运行良好。

如果要使用日期格式 dd/MM/yyyy HH:mm按日期和时间排序,请以相同的方式使用date-euro

var table = $('#example-table').DataTable({
    columnDefs: [{ 'targets': 0, type: 'date-euro' }],
    order: [0, 'desc'],
});
Run Code Online (Sandbox Code Playgroud)

对于初学者,将 JS 文件date-euro 添加到您的站点。然后在您的代码中添加“columnDefs”以指示应应用哪一列date-euro:targets = 表示包含要排序的日期的列,type = 表示要应用于该列的date-euro函数。最后,添加“order”以应用您想要的排序。