如何排序日期和字符串在同一列在jquery插件有文件jquery. datatable .js


How to sort date and string in same column in jquery plugin having file jquery.dataTables.js?

我有一个表包含"日期(格式M/d,如' 8月23日')"和字符串(如'过程'和'完成')在同一列。但问题是它是按字母顺序排序的,而不是根据日期排序的。我的文件结构是:

<script type="text/javascript" language="javascript" src="../../table-sorting/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="../../table-sorting/js/jquery.dataTables.js"></script>      
<script type="text/javascript" language="javascript" class="init">
    $(document).ready(function() {
        $('#sorting').dataTable( {
            "dom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>'
        } );
    } );
</script>

CPA航运

123年8月28

327年7月30日流程

789

如果我对shipping列进行排序那么它会给出像

这样的结果
流程

8月28

7月30日

但是我想要的结果是:

流程

7月30日

8月28

表示先对字符串排序,再对日期排序

这些shipping值来自Mysql数据库

如何解决这个问题??任何建议吗? ?

您必须以YYYYmmdd格式书写日期,以便字母顺序与时间顺序相匹配。
但是您希望您的日期以更好看的格式(合法的)显示。

解决方案是有2列:一列是好看的日期,一列是YYYYmmdd日期。这个将被隐藏,但将被dataTable排序函数使用。

<table id="sorting">
    <thead>
        <tr>
            <th>CPA</th>
            <th>Shipping</th>
            <th>Shipping (sorting format)</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>123</td>
            <td>Aug 28</td>
            <td>20150828</td>
        </tr>
        <tr>
            <td>327</td>
            <td>July 30</td>
            <td>20150730</td>
        </tr>
        <tr>
            <td>789</td>
            <td>Process</td>
            <td>0</td>
        </tr>
    </tbody>
</table>
然后,Javascript:
$('#sorting').dataTable( {
    "aoColumns": [
        {"bSortable": true}, // First column: normal
        {"iDataSort": 2}, // Second column's sorting depends on third column (dataTable starts counting from 0, that's why third column is number 2)
        {"bVisible": false}, // Third column: hide it
    ]
});

您可以在DataTables的文档中找到更多技巧和示例。