首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JQuery DataTable日期顺序

JQuery DataTable日期顺序
EN

Stack Overflow用户
提问于 2019-06-28 20:08:16
回答 2查看 234关注 0票数 0

我有两个问题。

在我的表中,有一个created date列,我正在按这个日期排序。不幸的是,它排序为字符串,而不是日期。(我正在使用nodejs)。

它必须是

21.05.2019

22.04.2109

我的代码是:

代码语言:javascript
运行
复制
"order": [[0,"desc"],[ 1, "desc" ],[ 7, "desc" ]],

我也试过一个插件

代码语言:javascript
运行
复制
"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));
    }
});

但并没有起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-28 20:31:17

请一次只回答一个问题,删除选择部分并使用它创建一个新问题。

您的第一个问题:为了让datatable以正确的方式对日期进行排序,您必须在隐藏元素中将日期打印为年-月-日。

例如,我不知道如何填充您的日期表,但在普通HTML中,您将执行以下操作:

代码语言:javascript
运行
复制
<tr>
 <td>
   <span style="display:none">2019-05-22</span>
    22-05-2019
 </td>
</tr>

因此,当datatable对列进行排序时,它会选取隐藏范围内的值,该值现在可以作为简单字符串进行排序。

票数 0
EN

Stack Overflow用户

发布于 2019-06-28 20:33:53

正如我所看到的,日期是:DD.MM.YYYY格式。要解析日期,需要按.而不是/拆分。

代码语言:javascript
运行
复制
"extract-date-pre": function(value) {
    var date = $(value, 'span')[0].innerHTML;
    date = date.split('.').reverse().join('-');
    return Date.parse(date);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56806673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档