jQuery DataTables插件:排序德国日期
jQuery DataTables plugin: Sort German date
我使用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中做哪些调整?
将data-sort
属性添加到以标准格式存储日期的td
(我在这里使用了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来对列进行排序。
Live Fiddle
即使是动态创建表,也可以通过两种方式实现:
A。在生成html时添加data-sort
属性。
B。在使用jQuery创建数据表后添加data-sort
,然后重新命名数据表。
我认为你必须为你的性别数据脚本使用日期时间格式插件,或者对格式化的日期时间进行排序的插件(我建议使用终极日期/时间排序插件)
案例示例:jsfiddle.net/x92amfe4/
您可以通过从字符串中生成JavaScript日期对象来对日期进行排序。然后,您只需要将德语日期("dd.mm.yy")拆分并创建一个新日期:
new Date(date.split('.')[2], date.split('.')[1]-1, date.split('.')[0])
用于德国日期排序:
dates.sort((a, b) => {
return new Date(b.split('.')[2], b.split('.')[1]-1, b.split('.')[0]) - new Date(a.split('.')[2], a.split('.')[1]-1, a.split('.')[0])
});
注:您可以使用任何日期格式来创建JavaScript日期对象。
new Date(year, month(0-11) [, day [, hour [, minutes [, seconds [, milliseconds]]]]]);
相关文章:
- 如何合并不同集合的游标并按日期排序
- 按日期排序和筛选
- SharePoint :按日期排序列表
- JavaScript对象按日期排序
- 跨浏览器d3.js SVG线条渲染日期排序
- extjssortable不按大小写和日期排序
- Angularjs 简单网格 表按日期排序
- 如何使用Javascript对html内容进行排序(按作者排序,按日期排序等)
- javascript foreach on array / json data 但按最新日期排序
- 量角器:检查数据按日期排序
- j查询日期排序
- Javascript按日期排序
- 如何使用Javascript按日期排序,然后按时间排序
- JS对象排序日期排序
- 我该如何调整.当它执行getJSON以返回按日期排序的结果时
- 按日期排序表-我应该使用AJAX/PHP/MySql还是纯Javascript
- Fuelux数据网格日期排序
- 无法设置“”的属性;某事“;在尝试创建按日期排序的数组时出现未定义错误
- 为什么数组不在javascript中按递增日期或递减日期排序
- jqGrid 树网格日期排序无法正常工作