日期和时间递减的DataTables问题

时间:2019-03-12 17:07:29

标签: javascript datatables

我已经成功格式化了从API返回的日期,但是在DataTables中未对它们进行正确排序。这是我的JS代码:

function GetActivityLog(nodeId, domainName, computerName) {

$.ajax({
    url: **removed**,
    success: function (json) {
        table = $('#tblActivityLogs').DataTable({
            "order": [[0, "desc"]],
        });
        table.clear();
        table.rows.add(json).draw();
        $('#nodeName').html(computerName);
    }
})

}

$(document).ready(function () {
    $('#tblActivityLogs').DataTable({
        "order": [[0, "desc"]],
        "autoWidth": false,
        columnDefs: [
            { targets: 0, class: 'dt-body-nowrap', title: 'Date/Time', data: 'dateTime' , render: function (data) { return moment(data).format('MMMM Do YYYY, h:mm:ss a') } },
            { targets: 1, title: 'Type', data: 'entryType' },
            { targets: 2, title: 'Event ID', data: 'eventId' },
            { targets: 3, class: 'dt-body-wrap', title: 'Message', data: 'message' }
        ]
    });
})

最简单地剪几张我所见的照片:

datatablesimage

如您所见,降序日期在旧日期,最近日期和旧日期之间切换。即使在同一天,时间也混乱了。这是原始数组的片段,其中包含未格式化的日期:

array

GetActivityLog是通过onClick事件调用的,但是据我了解,$(document).ready代码为数据表奠定了基础元素和格式,因此该事件可以在调用时填充表。

注意:数组项的图像是数组中的第一项,但在表中该图像(3月12日@ 4:39 AM)中显示为第五项。

更新

我在用moment格式化数据方面取得了更好的成功:

return moment(data).format('MMMM DD YYYY, h:mm:ss')

看起来DataTables现在可以正确地对日期进行排序,但是时间仍然没有排序(该日期的最新时间是该列表中最旧的时间)。

0 个答案:

没有答案