我有一个包含多个数据表的页面。一些表只有一个日期字段,用于对其进行排序,而同一页面上的其他表则有一个日期时间字段。日期/日期时间的语言环境是德语。
我可以让数据表按任一日期或日期时间正确排序,但我无法按任一日期排序。我用一个表创建了这个小提琴: https://jsfiddle.net/r23yfdz8/
$.fn.dataTable.moment( 'DD.MM.YYYY' ); // uncomment this to sort column 1 correctly
//$.fn.dataTable.moment( 'DD.MM.YYYY HH:mm' ); // this sorts column 2 (date and time) correctly
$('#example').DataTable()
body {
font-family: sans-serif;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.9/js/jquery.dataTables.js"></script>
<link href="https://cdn.datatables.net/1.10.0/css/jquery.dataTables.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js"></script>
<script src="https://cdn.datatables.net/plug-ins/1.10.19/sorting/datetime-moment.js"></script>
<table id="example">
<thead>
<tr>
<th>date</th>
<th>date + time</th>
</tr>
</thead>
<tbody>
<tr><td>20.01.2018</td><td>20.01.2018 09:00</td></tr>
<tr><td>12.02.2019</td><td>12.02.2019 16:00</td></tr>
<tr><td>13.06.2017</td><td>13.06.2017 09:00</td></tr>
<tr><td>20.01.2018</td><td>20.01.2018 16:00</td></tr>
<tr><td>01.10.2016</td><td>01.10.2016 09:00</td></tr>
<tr><td>12.10.2018</td><td>12.10.2018 16:00</td></tr>
<tr><td>21.10.2017</td><td>21.10.2017 09:00</td></tr>
<tr><td>04.10.2018</td><td>04.10.2018 16:00</td></tr>
<tr><td>13.10.2018</td><td>13.10.2018 09:00</td></tr>
<tr><td>01.11.2018</td><td>01.11.2018 16:00</td></tr>
</tbody>
</table>
我很想在 DOM 中向标签添加一个类(“排序日期时间”和“排序日期”),然后这些标签会告诉数据表如何对值进行排序,但我知识不足,无法弄清楚如何这样做。
感谢您的帮助!
答案 0 :(得分:1)
$.fn.dataTable.moment
插件可以在一张表中多次使用,以适应不同的格式。
如果我同时取消注释您的两个格式化程序,那么您的演示就可以正常工作。