我正在使用datatables.net jquery插件并通过asp.net mvc4填充数据。
我的一个专栏是日期格式。我有兴趣更改它的显示格式,但不会将列的类型从日期更改为字符串。
我目前正在使用默认初始化:
$('#data-table').dataTable();
我的第4栏是“创建日期”的日期,目前显示为“2013年7月7日9:38:11” 我希望它显示为“7/07/2013”或“2013年7月7日”。
我认为这是一项相对容易的任务,但未能找到我想要的答案。
如果可能的话,我想避免使用额外的插件。 有一种我想念的简单方法吗?
答案 0 :(得分:15)
这是我想出的。使用它呈现的方式我可以操纵日期显示的方式,无论如何我想要。
$('#data-table').dataTable({
"aoColumnDefs": [
{
"aTargets": [0],
"bSearchable": false,
"sType": 'date',
"fnRender": function ( oObj ) {
var javascriptDate = new Date(oObj.aData[0]);
javascriptDate = javascriptDate.getDate()+"/"+(javascriptDate.getMonth()+1)+"/"+javascriptDate.getFullYear();
return "<div class='date'>"+javascriptDate+"<div>";
}
}
]
});
我希望这对其他人有用......
答案 1 :(得分:0)
如果您使用可以为空的DateTime?你会想要使用不同的渲染功能:
$('#users-tbl').DataTable({
columns: [
{ "data": "ID", "visible" : false},
{"data": "MyDateField",
"type": "date ",
"render":function (value) {
if (value === null) return "";
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(value);
var dt = new Date(parseFloat(results[1]));
return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();}
}
]};
答案 2 :(得分:0)
无论是使用旧版本的插件还是最新版本,渲染功能都是可行的方法。从那时起,它就成了一个问题,而不是数据表(没有做任何格式化)以及如何用JavaScript格式化日期。
为此,我建议使用优秀的moment.js library(岩石实体,github上的〜30k星,100k +单元测试;几乎是处理js时间的首选。)