我使用 jQuery DataTables 插件,我的问题是我的德国日期没有正确排序。它具有以下格式:dd.mm.YYYY HH:iih
这是我的代码:
JSFIDDLE:
https://jsfiddle.net/uxaLn1e3/3/
HTML:
<table id="my-table">
<thead>
<th>Nr. </th>
<th>Date</th>
<th>Name</th>
</thead>
<tr>
<td>1</td>
<td>27.08.2015 19:00h</td>
<td>Carl</td>
</tr>
<tr>
<td>2</td>
<td>10.02.2016 14:00h</td>
<td>Alan</td>
</tr>
<tr>
<td>3</td>
<td>07.12.2015 21:00h</td>
<td>Bobby</td>
</tr>
</table>
JS(更新,使用ajax):
$('#my-table').DataTable({
"ajax": 'my_url',
"columns": [
{"data": "nr"},
{"data": "date"},
{"data": "name"}
],
"autoWidth": false,
"order": [],
"fnCreatedRow": function( nRow, aData, iDataIndex ) {
var dateFull = aData.date;
var dateFullItems = dateFull.split(' ');
var dateDatum = dateFullItems[0];
var dateDatumItems = dateDatum.split('.');
var dateTime = dateFullItems[1];
var dateFormat = dateDatumItems[2] + '-' + dateDatumItems[1] + '-' + dateDatumItems[0] + 'T' + dateTime + ':00Z';
$(nRow).find('td:nth-of-type(2)').attr('data-sort', dateFormat);
},
});
我需要在 JS 中进行哪些调整才能使日期排序起作用?
最佳答案
向 td
添加一个 data-sort
属性,该属性以标准格式存储日期(我在这里使用了 ISO 格式,即 YYYY-MM-DDTHH :ii:ssZ
):
<tr>
<td>1</td>
<td data-sort="2015-08-27T19:00:00Z">27.08.2015 19:00h</td>
<td>Carl</td>
</tr>
<tr>
<td>2</td>
<td data-sort="2016-02-10T14:00:00Z">10.02.2016 14:00h</td>
<td>Alan</td>
</tr>
<tr>
<td>3</td>
<td data-sort="2015-12-07T21:00:00Z">07.12.2015 21:00h</td>
<td>Bobby</td>
</tr>
现在,datatables
将考虑此 data-sort
值而不是 td
的 html 对列进行排序。
即使您动态创建表,也可以通过两种方式实现此目的:
A.生成 html 时添加 data-sort
属性。
B.使用 jQuery 创建数据表后添加数据排序
,然后重新初始化数据表。
关于javascript - jQuery 数据表插件 : Sort German date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467975/