1

我正在使用数据表服务器端处理来检索我的表的所有值。一列呈现用户的注册日期,采用 MySQL 日期格式。是否可以在显示时转换为 PHP 日期格式。

$('#data').dataTable( {
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "userlist.php",
} );

谢谢。

工作解决方案:

将此添加到服务器端但没有效果,

while ($aRow = mysql_fetch_array($rResult)) {
$row = array();
for ($i = 0; $i < count($aColumns); $i++) {
    if ($aColumns[$i] == "version") {
        /* Special output formatting for 'version' column */
        $row[] = ($aRow[$aColumns[$i]] == "0") ? '-' : $aRow[$aColumns[$i]];
    } elseif ($aColumns[$i] == "date") {
        /* Special output formatting for 'date' column */
        $date = new DateTime($aRow["date"]);
        $timestamp = $date->getTimestamp();
        $row[] = date("d-m-Y", $timestamp);
    } elseif ($aColumns[$i] != ' ') {
        /* General output */
        $row[] = $aRow[$aColumns[$i]];
    } 
}
$output['aaData'][] = $row;

}

我的 mysql 列之一的名称为“日期”。

4

1 回答 1

1

在从脚本发送输出之前,userlist.php只需使用 PHPdate('d-m-Y', $timestamp)或其他任何方式重新格式化日期即可。

回应评论:

这段代码未经测试,但原理如下:

您的 SQL 表中有一个日期列,假设它称为“日期”。因此在示例脚本中

$aColumns = array('date', etc.);

在脚本底部的“输出”部分,您会看到:

if ( $aColumns[$i] == "version" )
{
    /* Special output formatting for 'version' column */
    $row[] = ($aRow[ $aColumns[$i] ]=="0") ? '-' : $aRow[ $aColumns[$i] ];
}
/* insert this date formatting statement here */
elseif ( $aColumns[$i] == "date" ) {
    /* Special output formatting for 'date' column */
    $date = new DateTime($aRow["date"]);
    $timestamp = $date->getTimestamp();
    $row[] = date("d-m-Y", $timestamp);
}

如果您需要对日期列进行排序,则可能需要使用日期排序插件,因为数据表不为所有日期格式提供默认排序。

于 2012-05-20T07:29:12.977 回答