我正在尝试使用https://datatables.net/blog/2014-12-18上的信息来使DataTable对dd/mm/yyyy
格式的日期列进行排序,例如11/10/2018
(代表2018年10月11日)。
我已包括以下脚本-按此顺序
根据上面URL上的信息,我的DataTables初始化看起来像这样:
$(document).ready(function() {
$.fn.dataTable.moment( 'd/m/Y' );
$('#coursesTable').DataTable({"searching": false
});
});
但是,当我单击#coursesTable
中的日期标题时,将显示以下输出:
显然这是错误的,因为如果日期按时间顺序排列-最近的日期先-然后06/09/2017
应该出现在07/08/2017
之前-但这不是它们出现的顺序。
以其他方式(最早的)订购时,会出现相同的错误-即订购仍然不正确:
我不明白为什么会这样?
答案 0 :(得分:2)
文档确实含糊不清,但是您仍然需要定义列type
:
columnDefs: [{
target: 0, //index of column
type: 'datetime-moment'
}]
作为@DavidCzadilek的注释,您需要使用其他日期格式$.fn.dataTable.moment('D/M/YYYY')
(建议的DD/MM/YYYY
将无效有效)
答案 1 :(得分:1)
根据Moment.js Documentation,尝试将格式更改为此:
$.fn.dataTable.moment( 'DD/MM/YYYY' );
这是一个工作的小提琴:http://jsfiddle.net/4f275sa1/
如@davidkonrad所建议,不需要columnDefs。在这种情况下,“ DD / MM / YYYY”是正确的格式,因为问题使用带前导零的天和月。