这个问题已经很老了,答案中提到的大多数插件都已被弃用或停止工作(我都试过了)。
这是目前有效的。
添加扩展:
$.fn.dataTable.ext.order['date-time'] = function (settings, col) {
return this.api().column(col, { order: 'index' }).nodes().map(function (td, i) {
var val = $(td).text().trim(); // Get datetime string from <td>
return moment(val, "DD/MM/YYYY hh:mm:ss a").format("X");
});
}
然后,对于您的数据表:
$('#example').DataTable({
"columns": [
null,
null,
null,
{ "orderDataType": "date-time" }, // date-time is a custom key created in the above ext
null,
null,
null,
null,
null,
null
]
});
更新:
您可以使用以下方法简化上述内容:
$('#example').DataTable({
"columnDefs": [
{ "orderDataType": "date-time", "targets": [3] }
]
});
"targets": [] 数组可以包含要应用日期时间排序的所有列的索引(来自)。
注意:我使用了moment.js,您可以使用任何其他方法来创建有效的日期/日期时间对象。另外,使用的参考是dom-sort插件,因此,同样的方法也可以用于对具有复杂dom结构的列进行排序。
参考:https://datatables.net/examples/plug-ins/dom_sort