5

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

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

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

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

我的第 4 列是日期“创建日期”,当前显示为“2013 年 7 月 7 日晚上 9:38:11”我希望它显示为“2013 年 7 月 7 日”或“2013 年 7 月 7 日” .

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

如果可能,我想避免使用其他插件。有没有我想念的简单方法?

4

3 回答 3

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>";
            }
        }
    ]
}); 

我希望这对其他人有用...

于 2013-07-23T22:08:52.283 回答
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();}
            }
        ]};
于 2016-07-14T17:57:05.200 回答
0

无论是使用旧版本的插件还是最新版本,渲染功能都是可行的方法。从那时起,问题就不再是数据表(不进行任何格式化)以及如何在 JavaScript 中格式化日期了。

为此,我推荐优秀的moment.js 库(坚如磐石,github 上约 30k 星,100k+ 单元测试;几乎是在 js 中处理时间的首选)。

于 2017-01-27T19:32:13.543 回答