Mysql没有返回合适的小时?

时间:2011-05-24 18:10:58

标签: php

我在我的几个表中都有这些'创建'和'修改'字段,但我刚刚意识到这些表中出现的小时不是正确的,但一小时后,所以让我们说吧在当地时间是10:47:05然后存储到数据库的小时是11而不是10,它总是相同的,我从来没有得到正确的小时。

编辑:好的我们试图从MySQL配置文件( my.ini )设置时区,添加 default-time-zone =' - 05:00'在[myqld]部分,之后我检查了全局和会话时区,看看是否一切正常,显然是,但是当我插入或更新一些记录并检查'创建'和'修改'字段,看看现在的小时是否合适,我很失望,他们仍然比当前时间晚一个小时。

enter image description here

2 个答案:

答案 0 :(得分:0)

这肯定是一个时区问题。如果您无权设置时区,则可以始终从代码中传递mysql unix时间戳,以将值设置为字段。例如,如果你的字段是DATETIME,使用PHP可以编写“INSERT表SET datetime = FROM_UNIXTIMESTAMP(”。time()。“)”;如果它只是一个时间戳字段,你可以将time()作为值传递。 DATETIME的另一个替代方法是使用php的日期函数发送MYSQL格式的日期字符串。

最好设置服务器的时区,但如果不能,上面就足够了

编辑:上面的代码纯粹是一个例子,因此它不会在复制和粘贴的情况下工作,它纯粹是一个指南

答案 1 :(得分:0)

好吧,我终于解决了它,事实证明它不是mysql,甚至不是CakePhp - 它是PHP !!!!。

Here's我为解决这个问题所做的工作: