繁体   English   中英

如何在具有文件jquery.dataTables.js的jquery插件的同一列中对日期和字符串进行排序?

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

我有一个表在同一列中包含“日期(格式为M / d,如'Aug-23')”和字符串(如'process'和'completed')。 但是问题在于,它不是按日期按字母顺序排序的。 我文件的结构是:

<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>

单次转换出价

123年8月28日

327年7月30日

789过程

如果我对运输列进行排序,那么它给出的结果是

处理

8月28日

7月30日

但我想要这样的结果:

处理

7月30日

8月28日

意味着首先进行字符串排序,然后再进行日期排序

这些运输价值来自Mysql数据库

我该如何解决这个问题? 有什么建议吗?

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

解决方案是使用两列:一列带有漂亮日期,一列带有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文档中找到更多提示和示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM