DataTables 插件:如何格式化 DataTable 插件中的日期列?

DataTables Plugin: How to format a date column in DataTable plugin?

我是 jquery 的 DataTable 插件的新手。

我想将列日期转换为 dd/mm/yyyy 但它以 table 这种格式返回给我:Wed Jan 09 2013 00:00:00 GMT+0100 (Hora estándar romance).

$('#tblProceso').dataTable({
    "data": dataSet.dataList,
    "columns": [
                { "title": "my date", "data": "mydate" }
    ]
});

Class我用的是

Public class DateClass {
  Public Property mydate As DateTime
}

此过程在 ajax 函数中调用,在响应中我分配了日期列表 Class。

如何设置列的格式? 我需要添加什么?

方法是这样的,

在服务器端创建日期列表时,以所需格式存储日期 (dd/mm/yy)。因此,当您进行 Ajax 调用并获取日期列表时,它将以您想要的默认格式来自服务器。

*对不起我的英语不好。

如果你想用javascript格式化它,你需要覆盖列定义的fnRender函数。像这样:

$("#tblProceso").dataTable({
  "data": dataSet.dataList,
  "aoColumnDefs": [
    { 
        "aTargets": [0], //column index counting from the left
        "sType": 'date',
        "fnRender": function ( dateObj ) {
            var oDate = new Date(dateObj.aData[0]);
            result = oDate.getDate()+"/"+(oDate.getMonth()+1)+"/"+oDate.getFullYear();
            return "<span>"+result+"</span>";
        }
    }
  ],
  "columns": [
            { "title": "my date", "data": "mydate" }
  ]
});

with datatables 如果你有一个包含日期的列,你在排序时会遇到问题,所以,使用 this plugin

如果您要返回可为 null 的日期时间,则呈现函数的工作方式需要稍有不同:

        $('#tblProceso').DataTable({
        columns: [

            {"title": "my date",
             "data": "mydate",
             "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();}
            }
        ]};

我的方法使用 Moment.js based at David Sopkpo :

        $('#tblProceso').DataTable({
        columns: [

            {"title": "my date",
             "data": "mydate",
             "type": "date ",
             "render":function (value) {
                  if (value === null) return "";
                  return moment(value).format('DD/MM/YYYY');
                 }
            }
        ]};