簡體   English   中英

jQuery DataTable日期順序

[英]JQuery DataTable Date Order

我有兩個問題。

在我的表格中,有一個創建的日期列,我正在按此日期進行痛楚。 不幸的是,它按字符串而不是日期排序。 (我正在使用nodejs)。

一定是

2019年5月21日

2109年4月22日

和我的代碼:

"order": [[0,"desc"],[ 1, "desc" ],[ 7, "desc" ]],

我也嘗試過插件

"columnDefs": [                                                
                    {
                        "targets": [ 1 ],
                        "visible": true,
                        "searchable": false
                    },
                    {
                        "targets":7,
                        "type": "date-de"
                    },


<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/
jquery.dataTables.js" type="text/javascript"></script>

<script src="https://cdn.datatables.net/plug-ins/1.10.19/sorting/date-de.js"
 type="text/javascript"></script>

$(document).ready(function() {
   jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    "extract-date-pre": function(value) {
        var date = $(value, 'span')[0].innerHTML;
        date = date.split('/');
        return Date.parse(date[1] + '/' + date[0] + '/' + date[2])
    },
    "extract-date-asc": function(a, b) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    },
    "extract-date-desc": function(a, b) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
});

但是沒有用...

如我所見,日期的格式為: DD.MM.YYYY 要解析日期,您需要除以. 不是/

"extract-date-pre": function(value) {
    var date = $(value, 'span')[0].innerHTML;
    date = date.split('.').reverse().join('-');
    return Date.parse(date);
}

請一次只回答一個問題,刪除選擇的部分並用它創建一個新問題。

您的第一個問題:為了使數據表以正確的方式對日期進行排序,您必須在隱藏的元素中將日期打印為Year-Month-Day。

例如,我不知道如何填充日期表,但是在純HTML中,您將執行以下操作:

<tr>
 <td>
   <span style="display:none">2019-05-22</span>
    22-05-2019
 </td>
</tr>

因此,當數據表對列進行排序時,它會選擇隱藏范圍內的值,該值現在可以作為簡單字符串進行排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM