我希望从数据库结果中删除00:00:00。通常我可以这样做但是我使用的是DataTables(这对我来说是新的)所以我不知道该怎么做。
出生日期显示如
1996-04-27 00:00:00
但我需要它像
27-04-1996
是否有人熟悉dataTables可以提供建议?
我在server_processing.php中为DataTables提供了以下代码。它不像仅仅使用"SELECT DATE_FORMAT(date, '%Y-%m-%d %H:%i') AS formated_date FROM table"
那么简单!
/* Array of database columns which should be read and sent back to DataTables. Use a space where
* you want to insert a non-database field (for example a counter or static image)
*/
$aColumns = array('C_ID', 'C_Title', 'C_Surname', 'C_Forename', 'C_DOB', 'C_ID', 'C_Ref');
/* Indexed column (used for fast and accurate table cardinality) */
$sIndexColumn = "C_ID";
/* DB table to use */
$sTable = "Table1";
和
$sQuery = "
SELECT SQL_CALC_FOUND_ROWS `".str_replace(" , ", " ", implode("`, `", $aColumns))."`
FROM $sTable
$sWhereNew
$sOrder
$sLimit
";
$rResult = mysql_query( $sQuery, $gaSql['link'] ) or die(mysql_error());
更新
答案 0 :(得分:0)
你不会喜欢这样,但通过添加mRender功能,解决这个问题的最佳位置是在表的javascript定义中:
$('#demotable').dataTable({
"aoColumnDefs": [{
"aTargets": [0]
}, {
"aTargets": [1],
"mRender": function(data, type, full) {
if (data === null) return 'N/A';
if (data === '') return 'N/A';
if (data == '0000-00-00 00:00:00') return 'N/A';
var tdat = data.split(' ');
var tedat = tdat[0].split('-');
return tedat[2] + '-' + tedat[1] + '-' + tedat[0];
}
}, ]
}
);
为什么会这样?
因为这会保留原始数据并且只显示修改后的输出。很酷的是,排序仍然有效,因为它使用原始日期!
Look at this plunker and try sorting the Date-column
<强>更新强>
这是输出图像