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