我目前有一个表,可通过AJAX从REST API端点加载数据:

$(document).ready(function() {
    var table = $('#pendingTable').DataTable({
        ajax: {
            type: "GET",
            url: url + '/rest/endpoint,
            dataSrc: "_deployments"
        },

    columns: [
        { data: "service_name" },
        { data: "git_organization" },
        { data: "id" },
        { data: "timestamp" },
        { data: "username" },
        { data: "environment" },
        { data: "site" },
        { data: "status" }
    ],
    fnCreatedRow: function( nRow, aData, iDataIndex ) {
        $(nRow).attr('onclick', "openModal(" + aData["id"] + ")");
    },
    order: [
        [2, 'sc']
    ]
});
$('.table-responsive').css('opacity', '0').fadeTo(500, 1, 'swing');
$('#pendingTable_filter input').attr("placeholder", "by User, Org & More");
});


我一直在研究DataTables.net文档,但是在绘制表格之前,在确定用于处理“时间戳”数据(即,将其格式化为正确的日期)的最佳操作过程中遇到了问题。

API提供了修改单个单元格的功能,我可以迭代这些单元格,列或两者。我将如何格式化此时间戳? (该值只是代表毫秒的字符串)。我是否需要某种形式的回调,还是应该在绘制表之后操纵数据?

任何例子将不胜感激。很抱歉,我没有提供任何示例来说明我所尝试的内容,其中大部分是伪代码,没有按照我的预期做。

最佳答案

这就是我使用render完成此操作的方法,它允许您在数据显示之前对其进行操作。

{ data: "id" },
{
    'render': function (data, type, full, meta) {
        var date = new Date(parseInt(data.substr(6), 0));
        return ISODateString(date);
    }
},
{ data: "username" },


我创建了一个名为ISODateString的函数,该函数返回时间戳的日期,月份和年份部分(显然,如果需要,您还可以返回时间部分)。

function ISODateString(d) {
    function pad(n) { return n < 10 ? '0' + n : n }
    return pad(d.getDate()) + '/' + pad(d.getMonth() + 1) + '/' + d.getFullYear();
}

10-06 04:31
查看更多