gpt4 book ai didi

php - 恢复 PHP 和 MySQL 之间的时间戳差异

转载 作者:行者123 更新时间:2023-11-29 20:21:23 26 4
gpt4 key购买 nike

正如标题中已经说过的,由于 PHP date 函数和 MySQL NOW(),我发现了一个问题(这是一个非常大的问题)功能。

这就是问题所在,在 MySQL 表中,我有一个名为 aggiornamento 的列和一个名为 idesterno 的外部 ID 列,其工作方式如下:

  • 插入时,它由 MySQL 的 CURRENT_TIMESTAMP 插入,并且idesterno 也被插入
  • 更新时,它会检查 idesterno 并使用 PHP 的 date 函数更新 aggiornamento

这是一个问题(相信我,这确实是一个大问题):
MySQL NOW()CURRENT_TIMESTAMP 返回正确的时间,2016-09-04 13:20:00,但 PHP 也返回正确的时间)另一个日期,即2016-09-04 11:20:00

所以,当我在数据库中插入新记录时,一切都按我的预期顺利进行,但是,当他更新时,麻烦就来了。

我发现差异在于时区,MySQL 有我的(CEST)而 PHP 没有,即使它们位于同一服务器上(是的,真的很有趣),使用date_default_timezone_get检查。

所以,最后,我需要知道的是:
我知道哪一个已更新,但不知道 CURRENT_TIMESTAMPdate('Y-m-d H:i:s) 之间的确切时间差。
我猜最多大约 1 或 2 小时(基于夏季/冬季时间),但我无法在不知道自己做得是否正确的情况下编辑这个时间

附注表条目由每 5 分钟运行一次的 CRON 更新

最佳答案

所以,
托管已将“欧洲/罗马”时区设置到 php.ini 中,但它被 Wordpress 以神秘的方式覆盖为 UTC。

无论如何,发现这一点后,我强制更改了 PHP 脚本中的默认时区,并更新了错误的数据库记录,根据太阳时和法定时间添加了 1 或 2 小时。

关于php - 恢复 PHP 和 MySQL 之间的时间戳差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39489308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com