mysql NOW()和php date()在同一时区不同

时间:2013-12-21 08:10:25

标签: php mysql sql date datetime

在这个时区问题上挣扎了几个小时后,我将PHP和mysql设置为同一时区(America / New_York)。

我这样做了 在进行sql连接后

SET time_zone = 'America/New_York'

在php页面中:date_default_timezone_set('America/New_York');

然而,当我打印NOW()和date()时,我得到:

mysql NOW(): 2013-12-21 02:58:10 
php DATE(): 2013-12-21 03:01:48

我认为将mysql和php设置为相同的时区可以解决这个问题,但奇怪的3分38秒偏移确实让我失望。我想通过

进行查询,以便在最后一刻选择活动
SELECT * FROM activities WHERE activity_time > DATE_SUB(NOW(), INTERVAL 3 MINUTE)

但是使用php的date()函数设置了activity_time,因此比较不起作用。我能想到的丑陋的解决方法是考虑时差(3分38秒的差异。真的吗?),将时差视为218秒,然后做

SELECT * FROM activities WHERE activity_time > DATE_SUB(NOW(), INTERVAL 298 SECOND)

但在一个理想的世界里,我想让mysql NOW()和PHP date()在同一时区显示相同的时间。这可能吗?

0 个答案:

没有答案