我目前有一个表,可通过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();
}