【问题标题】:MySQL+PHP returns time along a clean date fieldMySQL+PHP 沿干净的日期字段返回时间
【发布时间】:2015-11-03 12:35:05
【问题描述】:

MySQL 上的表有几列日期类型,在 phpMyAdmin 和 mysql 网页前端浏览表时,我可以看到数据是纯日期。

但是,当我在 PHP 上运行一个简单脚本时,其中一列会返回时间戳 YYYY-MM-DD 00:00:00。

我将文件和数据库都迁移到了不同​​的系统,我无法再重现错误。

这是由于 PHP/MySQL 的一些错误配置,还是数据以最终损坏的方式插入并查询它返回了意外的时间戳?

示例: 像这样的查询:

"SELECT `cf_719`,`cf_711` FROM `vtiger_ticketcf` WHERE `ticketid`=682"

cf_719 abd cf_711 都是 date 类型的地方会返回

array(2) { ["cf_719"]=> string(19) "2015-04-08 00:00:00" ["cf_711"]=> string(10) "2015-04-08" } 

编辑:看来我找到了解决方案。问题是他们的 phpMyAdmin 应用程序中的一个看似错误,它将字段显示为“日期”,但是,mysql 命令行工具查询 DESC 显示它是日期时间类型。我什至不知道我应该从中学到什么——只相信命令行。

【问题讨论】:

  • 能否请您出示您的代码或数据库表?
  • 不能提供太多,因为它有一些敏感数据,但会尽力提供尽可能多的信息来压缩问题

标签: php mysql date


【解决方案1】:

DATE 字段的值是 DATETIME 字段的一个特殊子集,包含时间应为的午夜 (00:00)。

我不知道为什么一个 php 实例只显示日期,而另一个显示日期和时间。但我知道这是不可预测的行为。

通常需要在显示此类数据之前对其进行格式化,因此它会显示您想要的分辨率。即使您需要时间,您也可能只需要几小时和几分钟。

这个问题和答案告诉你如何在 php.ini 中做到这一点。 Getting time and date from timestamp with php 。这样的事情会起作用。

$timestamp = strtotime($row['DATETIMEAPP']);
$date = date('d-m-Y', $timestamp);

【讨论】:

    猜你喜欢
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多