DataTables如何仅显示日期而不是日期时间

我正在使用DataTables中的Django示例进行服务器端处理。 我以这种格式’yyyy-mm-dd hh:mm:ss’返回datetime值。 这些日期时间值当前显示如下(例如):

2011年12月18日晚上11:59

我想只显示日期部分而不是日期和时间。

这是我在html页面中的内容:

 /* <![CDATA[ */ $(document).ready(function() { $('#certs-table').dataTable({ "bJQueryUI": true, "sPaginationType": "full_numbers", "bProcessing": true, "bServerSide": true, "sAjaxSource": "/cars/get_cars_list/", "iDisplayLength": 10, "aoColumnDefs": [ { "aTargets": [0], "bVisible": false, "bSearchable": false}, { "aTargets": [1], "fnRender": function ( oObj ) { return '' + oObj.aData[1] + ''; }, "bSearchable": true, }, { "aTargets": [2], "bSearchable": true}, { "aTargets": [3], "bSearchable": false, "sType": 'date'}, ] }); } ); /* ]]> */  

日期是第4列,即aTarget [3]。

如何只显示日期部分? 我昨天才开始使用DataTables / JQuery,所以非常感谢一个例子。 谢谢。

我认为最好的方法是转换数据服务器端,只返回你想要的日期格式,但你也可以

  { "aTargets": [3], "bSearchable": false, "sType": 'date', "fnRender": function ( oObj ) { var javascriptDate = new Date(oObj.aData[0]); javascriptDate = javascriptDate.getDate()+"/"+javascriptDate.getMonth()+"/"+javascriptDate.getFullYear(); return "
"+javascriptDate+"
"; } }

通常最好从服务器返回UTC日期作为JSON字符串,然后使用用户的本地格式设置在浏览器中对其进行格式化。 我喜欢使用moment.js来进行格式化。 例:

 "aoColumnDefs": [ { //format the date for local time "aTargets" : [ 1, 5], //indexes of whatever columns you need to format "mRender": function ( data, type, full ) { if(data){ var mDate = moment(data); return (mDate && mDate.isValid()) ? mDate.format("L LT") : ""; } return ""; } } ] 

你可以返回不同的字符串,它们可以随时使用。 确保将偏移量(Z)指定为+0000否则日期将被解析为本地时间。

 moment("2010-10-20 4:30"); // parsed as 4:30 local time moment("2010-10-20 4:30 +0000"); // parsed as 4:30 UTC 

之前的回复使用的是旧版DataTables API。 版本1.10+的语法是:

 "columnDefs": [ { "targets": [6, 7], "type" : "date", "render": function (data) { if (data !== null) { var javascriptDate = new Date(data); javascriptDate = javascriptDate.getMonth() + 1 + "/" + javascriptDate.getDate() + "/" + javascriptDate.getFullYear(); return javascriptDate; } else { return ""; } } } ]