从DataTables结果中删除时间

时间:2014-04-03 21:30:46

标签: javascript php mysql json jquery-datatables

我希望从数据库结果中删除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());

更新

1 个答案:

答案 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

<强>更新

这是输出图像

Image of Output