【问题标题】:jQuery Datatables MySQL date to PHP datejQuery 数据表 MySQL 日期到 PHP 日期
【发布时间】:2012-05-27 03:29:09
【问题描述】:

我正在使用数据表服务器端处理来检索我的表的所有值。一列呈现用户的注册日期,采用 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 列的名称为“日期”。

【问题讨论】:

  • “PHP 日期格式”是什么意思?我假设“MySQL 日期格式”是指“YYYY-MM-DD”
  • 我的意思是将 YYYY-MM-DD 转换为 DD-MM-YY 等
  • if else 语句的错误顺序 - 最后两个应该被交换。

标签: php jquery mysql date datatables


【解决方案1】:

userlist.php 中,只需使用 PHP date('d-m-Y', $timestamp) 或其他任何东西在从脚本发送输出之前根据需要重新格式化日期。

回应评论:

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

您的 SQL 表中有一个日期列,假设它称为“日期”。因此in the example script

$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);
}

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

【讨论】:

  • 在服务器端 userlist.php 我应该在哪里包含它。示例代码:datatables.net/examples/data_sources/server_side.html
  • @Ajay:我已经为示例脚本添加了关于如何执行此操作的建议。
  • 我已将代码添加到服务器端,但输出没有任何效果。检查我的编辑。
  • @Ajay:您需要添加我在编辑后的帖子中显示的语句 - 在使用“一般输出”elseif 之前。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
  • 2014-02-21
  • 2014-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多