【问题标题】:mysql datetime shows differently on php pagemysql datetime在php页面上显示不同
【发布时间】:2015-10-20 00:45:16
【问题描述】:

我正在处理购物车,它在下订单时将 DateTime 存储在订单表中。

订单表中的一行显示日期时间2015-07-24 02:34:45

当我在 PHP 页面上显示相同的内容时,它会显示 2015-07-24 01:43:33

订单表中的所有条目都会发生这种情况。我这里只考虑一个,日期显示正确但时间显示不正确

默认时区是 America/New_York

我只是从订单表中选择行并显示在 PHP 页面上。

【问题讨论】:

  • 如何在页面上显示日期时间?日期如何存储在您的数据库中?
  • 您使用什么框架/功能来显示和保存日期?
  • MySql 和 PHP 对时区有不同的配置。所以 MySql 中的 NOW() 不必使用与 PHP 中设置的时区相同的时区
  • 请指定您使用的框架
  • 最好始终将日期/时间保存为 UTC,并在输出时根据需要进行调整。让生活更轻松、更一致。

标签: php mysql datetime


【解决方案1】:

Mysql timezone != PHP timezone,需要分别设置。如果你的 php.ini 有 America/New_York 你需要执行这个 mysql 查询:

SET GLOBAL time_zone = 'America/New_York';

【讨论】:

  • 它将适用于当前数据库或所有数据库?,我也有许多其他数据库
【解决方案2】:

如果您重新启动 MySql,通过命令行设置 GLOBAL 值将被重置。而是将其设置在您的 my.cnf 中,例如

default-time-zone = "America/New_York"

设置选项后别忘了重启你的MySql

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多