使用 Jquery Datatable
按 date 排序表列时遇到麻烦这是动态表格,我有列Created
显示日期。
这是我的代码:
HTML
<table id="dataTable">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Created</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>johndoe@example.com</td>
<td>2016-11-20 22:15:27</td>
</tr>
<tr>
<td>Jane</td>
<td>janedoe@example.com</td>
<td>2014-09-24 17:55:30</td>
</tr>
<tr>
<td>Doe</td>
<td>doe@example.com</td>
<td>2017-12-22 05:13:01</td>
</tr>
</tbody>
</table>
Jquery的
$('#dataTable').DataTable();
这应该是订购的(2017年 - &gt; 2016年 - &gt; 2014年)。
我已经搜索并找到了答案,但都未能达到我想要的目的。
例如,使用data-order
上的<td>
无效。
<td data-order="2014-09-24 17:55:30">Lorem ipsum</td>
也使用moment.js
无效。
我如何实现这一目标?
修改
我正在撤消日期格式,我使用的是 DD / MM / YYYY ,但它与 YYYY / MM / DD
一起使用之后我将正确的日期格式添加到data-order
,然后设置默认订单列
<td data-order="date('Y-m-d H:i:s')">Lorem ipsum</td>
$('#dataTable').DataTable({"order": [[2, "desc"]]});
现在可行。
答案 0 :(得分:1)
您可以按索引设置列的默认顺序,如下所示:
$('#dataTable').DataTable({"order": [[2, "desc"]]});
请注意,它不会按日期而是按数字排序。它适用于Y\m\d
之类的日期,但对于d\m\Y
这样的日期,您应该使用https://datatables.net/plug-ins/sorting/指出的插件@Daniel Lizik
尝试:
$('#dataTable').DataTable({"order": [[2, "desc"]]});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<table id="dataTable">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Created</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>johndoe@example.com</td>
<td>2016-11-20 22:15:27</td>
</tr>
<tr>
<td>Jane</td>
<td>janedoe@example.com</td>
<td>2014-09-24 17:55:30</td>
</tr>
<tr>
<td>Doe</td>
<td>doe@example.com</td>
<td>2017-12-22 05:13:01</td>
</tr>
</tbody>
</table>
&#13;