我有两个问题。
在我的表格中,有一个创建的日期列,我在此日期之前感到很痛苦。不幸的是,它按字符串而不是日期排序。 (我正在使用nodejs)。
必须是
2019年5月21日
22.04.2109
和我的代码:
"order": [[0,"desc"],[ 1, "desc" ],[ 7, "desc" ]],
我也尝试过插件
"columnDefs": [
{
"targets": [ 1 ],
"visible": true,
"searchable": false
},
{
"targets":7,
"type": "date-de"
},
<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/
jquery.dataTables.js" type="text/javascript"></script>
<script src="https://cdn.datatables.net/plug-ins/1.10.19/sorting/date-de.js"
type="text/javascript"></script>
$(document).ready(function() {
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"extract-date-pre": function(value) {
var date = $(value, 'span')[0].innerHTML;
date = date.split('/');
return Date.parse(date[1] + '/' + date[0] + '/' + date[2])
},
"extract-date-asc": function(a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"extract-date-desc": function(a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
但是没有用...
答案 0 :(得分:1)
我看到日期是DD.MM.YYYY
格式。要解析日期,您需要除以.
而不是/
。
"extract-date-pre": function(value) {
var date = $(value, 'span')[0].innerHTML;
date = date.split('.').reverse().join('-');
return Date.parse(date);
}
答案 1 :(得分:0)
请一次只回答一个问题,删除选择的部分并用它创建一个新问题。
您的第一个问题:为了使数据表以正确的方式对日期进行排序,您必须在隐藏的元素中将日期打印为“年-月-日”。
例如,我不知道如何填充日期表,但是在纯HTML中,您将执行以下操作:
<tr>
<td>
<span style="display:none">2019-05-22</span>
22-05-2019
</td>
</tr>
因此,当数据表对列进行排序时,它会选择隐藏范围内的值,该值现在可以作为简单字符串进行排序。