【问题标题】:Removing time from DataTables result从 DataTables 结果中删除时间
【发布时间】:2014-04-03 21:30:45
【问题描述】:

我希望从数据库结果中删除 00:00:00。通常我可以做到,但我使用的是 DataTables(这对我来说是新的),所以我不知道该怎么做。

出生日期显示喜欢

1996-04-27 00:00:00

但我需要它像

27-04-1996

有熟悉dataTables的人可以指教吗?

我在 dataTables 的 server_processing.php 中有以下代码。不幸的是,它不像使用"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());

更新

【问题讨论】:

  • 你用的是什么数据库 Sql-Server MySql 还是别的什么的?
  • 你得到了几秒钟的时间,然后你想删除它?根本没时间怎么办?参考this(假设你使用的是 MySQL)
  • 感谢您的回复。我正在使用 MySql。不幸的是,它不像您链接到@Nath 的解决方案那么简单。我正在使用数据表。我已经编辑了我的原始问题以显示一些代码。感谢您的帮助
  • 我明白了。 Db 本身需要时间吗?
  • 不是,但我正在现有系统上工作,并且我自己做(我不是 php/mysql 开发人员)所以我遇到了麻烦。 db 字段是日期时间,我无法更改它,因为我需要在调用它的地方一直更改系统。

标签: javascript php mysql json jquery-datatables


【解决方案1】:

您不会喜欢这样,但解决此问题的最佳位置是通过添加 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

更新

这是输出的图像

【讨论】:

  • 您好!谢谢您的帮助!我已将 #demotable 更改为 #mytablename 并将第 5 行更改为 [4],这是我的表 col,日期在但我收到错误“DataTables 警告(表 id = 'example-22'):请求的未知参数'1'来自第 0 行的数据源"
  • 我在 plunker 上的示例中添加了额外的表 cols,但它破坏了渲染。我的桌子有 5 列,日期在第 4 列。
  • 在这里分叉了 plunker:plnkr.co/edit/oNBPT9hN12IJP4kgdCnu?p=preview 您需要与表中的列一样多的 columndef。不要忘记设置目标。实施您的更改,如果不起作用,请将分叉的 Plunker 发送给我,这样我就可以使用我的疯狂修复技能 :-)
  • 嗨!谢谢!我已经对其进行了修改,它适用于 Plunker,但不适用于我的网站! plnkr.co/edit/xod9mJsrndr5oxzjudKj?p=preview 我得到的错误是 DataTables warning (table id = 'example-22'): Requested unknown parameter '1' from the data source for row 0
  • 这绝对与从服务器获取的字段少于数据库中的列有关。只需删除 TH,直到错误不再出现。这可能会给你一个提示。 Elese 从服务器发布您的 jsondata 的屏幕截图,并使用绘图程序将关键信息变灰。只保留数据结构不变。一个演示条目就可以了。
猜你喜欢
  • 2012-01-15
  • 1970-01-01
  • 2016-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
  • 2013-08-29
  • 2015-10-25
相关资源
最近更新 更多