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

时间:2015-02-13 13:14:14

标签: javascript jquery vb.net datatables

我是jquery的DataTable插件的新手。

我想将列日期转换为dd/mm/yyyy,但它会在表格中返回此格式:Wed Jan 09 2013 00:00:00 GMT+0100 (Hora estándar romance)

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

我正在使用的课程是

Public class DateClass {
  Public Property mydate As DateTime
}

在ajax函数中调用此过程,并在响应中指定DateClass列表。

如何格式化列? 我需要添加什么?

3 个答案:

答案 0 :(得分:4)

如果要返回可为空的日期时间,则渲染功能需要稍微不同:

        $('#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();}
            }
        ]};

答案 1 :(得分:3)

On方法就是这样,

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

*抱歉我的英语不好。

答案 2 :(得分:1)

如果要使用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" }
  ]
});

datatables如果您有一个包含日期的列,则排序时会出现问题,因此请使用this plugin