在这个时区问题上挣扎了几个小时后,我将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()在同一时区显示相同的时间。这可能吗?