正如标题中已经说过的那样,由于PHP date
函数和MySQL NOW()
函数,我发现了一个问题(并且这是一个非常大的问题)。
这就是问题,在MySQL表中我有一个名为aggiornamento
的列和一个名为idesterno
的外部ID列,其工作方式如下:
CURRENT_TIMESTAMP
插入,然后插入
idesterno
也会被插入idesterno
函数aggiornamento
并更新date
这里出现了 BIG 问题(相信我,这真的是个大问题):
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_TIMESTAMP
和date('Y-m-d H:i:s)
之间的确切时差。
我猜它最多约1或2个小时(基于夏季/冬季时间)但我不能在不知道我是否做得正确的情况下进行编辑
P.S。表条目由CRON更新,每隔5分钟运行一次
答案 0 :(得分:0)
所以,
托管已将“欧洲/罗马”时区设置为php.ini,但它会被Wordpress以简单的方式覆盖到UTC。
无论如何,在发现这个之后,我强制更改了PHP脚本中的默认时区,并根据太阳和法定时间更新了错误的数据库记录,增加了1或2个小时。