【发布时间】:2020-09-15 11:48:51
【问题描述】:
乍一看似乎排序很好,例如它从 2019 年一直到 2020 年排序,然后回到 2019 年及以后。 (日期格式 DD/MM/YYYY)。已包含下面的脚本和表格代码。有人可以帮忙吗?
我的代码如下...
<script type="text/javascript">
$(document).ready(function () {
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"date-uk-pre": function ( a ) {
var ukDatea = a.split('/');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},
"date-uk-asc": function ( a, b ) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"date-uk-desc": function ( a, b ) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
} );
$('#tbl').DataTable({
stateSave: true,
order: [[9, 'asc']],
"aoColumns": [
null,
null,
null,
null,
{ "bSortable": false },
{ "sType": "date-uk" }, //THIS IS THE ITEM I CLICK THE SORT BUTTON ON.
null,
null,
null,
{ "sType": "date-uk" },
{ "sType": "date-uk" },
null],
paging: false, "oLanguage": {
"sEmptyTable": "",
"sSearch": ""
}
});
</script>
// Table code
<table class="table table-bordered" id="tbl">
<thead>
<tr>
<th>
Test Date sort
</th>
</tr>
</thead>
<tbody>
<td>
@Html.DisplayFor(modelItem => item.TestDate)
</td>
</tbody>
</table>
【问题讨论】:
-
按 DD/MM/YYYY 排序无论如何都会给您带来麻烦。您最好按时间戳或 YYYY/MM/DD 排序
-
关于如何在 DataTables 中对日期和日期时间进行排序有很多问题。两个可能的答案是:(1)使用
moment.js——例如,如图所示here;或 (2) 使用orthogonal data,它允许您存储不同版本的数据(例如“25/12/2020”用于显示目的,“20201225”用于排序目的)。 -
只有一个单元格和一行;排序不会有太大作用。
标签: javascript jquery datatables