Datatables.net日期显示格式

时间:2013-07-07 09:51:18

标签: datatables jquery-datatables

我正在使用datatables.net jquery插件并通过asp.net mvc4填充数据。

我的一个专栏是日期格式。我有兴趣更改它的显示格式,但不会将列的类型从日期更改为字符串。

我目前正在使用默认初始化:

$('#data-table').dataTable();

我的第4栏是“创建日期”的日期,目前显示为“2013年7月7日9:38:11” 我希望它显示为“7/07/2013”​​或“2013年7月7日”。

我认为这是一项相对容易的任务,但未能找到我想要的答案。

如果可能的话,我想避免使用额外的插件。 有一种我想念的简单方法吗?

3 个答案:

答案 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时间的首选。)