Mysql Current Timestamp和time()显示不同的值

时间:2012-01-21 17:29:20

标签: php mysql codeigniter

行。所以我一直在尝试实现一个计时器。现在发生了一件非常奇怪的事情,我无法理解为什么?。

基本上我试图找出上次访问和当前时间之间的区别。我将上次访问的时间存储在数据库中。该值取决于服务器时间。但是当我尝试php的time()函数时,它显示的值比我在数据库中的时间晚了5-6个小时。

例如:这是我的代码:

    $t1= strtotime($played_row->timer); // Time from the database with CURRENT_TIMESTAMP

    $t2= strtotime("now"); // Get the current time

显示年份:2012月:01天:21 - 05:28 pm为t2

和年份:2012月:01天:21 - 10:28 pm我的时间戳值。

任何人都能说出我的原因吗?

P.S:我在计算机上运行代码。

3 个答案:

答案 0 :(得分:4)

猜测我会说你的数据库和PHP正在使用两个不同的时区偏移。

答案 1 :(得分:2)

这很可能是时区问题:如果您在东部时区,那么您现在距离UTC还有5个小时的路程。如果一个系统返回本地时间而另一个系统返回UTC,那么您将看到这一点。

答案 2 :(得分:1)

尝试使用date_default_timezone_set()设置数据库中使用的PHP时区。

  

date_default_timezone_set - 设置所有人使用的默认时区   脚本中的日期/时间函数

另见date_default_timezone_get()如何获取ini-set timezone。