Jquery DataTables按日期默认排序列

时间:2017-12-25 00:50:44

标签: javascript jquery datatables

使用 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"]]});

现在可行。

1 个答案:

答案 0 :(得分:1)

您可以按索引设置列的默认顺序,如下所示:

$('#dataTable').DataTable({"order": [[2, "desc"]]});

请注意,它不会按日期而是按数字排序。它适用于Y\m\d之类的日期,但对于d\m\Y这样的日期,您应该使用https://datatables.net/plug-ins/sorting/指出的插件@Daniel Lizik 尝试:

&#13;
&#13;
$('#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;
&#13;
&#13;