看起来我有周一早上的病例!!!
设置
正如你所知,我的本地机器在东部时区,日光节约正在生效。这可以从下面的"日期"命令中看到。
date ; php -r 'echo mktime() .PHP_EOL ;'
Mon Apr 18 11:14:29 EDT 2016
1460992469
然后,我使用php生成了一个unix时间戳。它假设给出您的当前时间,并在1970年1月1日UTC 0:0:0将其转换为Unix epoch。
我的mysql会话被设置为UTC,我想1460992469表示为它被mktime转换为UTC。
问题
问题是转换回est无法识别夏令时。有人能帮我指出我逻辑上的缺陷吗。
SELECT CONVERT_TZ(FROM_UNIXTIME(1460992469), @@session.time_zone ,'EST') as converted_to_est , FROM_UNIXTIME(1460992469) , @@session.time_zone;
+---------------------+---------------------------+---------------------+
| converted_to_est | FROM_UNIXTIME(1460992469) | @@session.time_zone |
+---------------------+---------------------------+---------------------+
| 2016-04-18 10:14:29 | 2016-04-18 15:14:29 | UTC |
+---------------------+---------------------------+---------------------+
我尝试在CONVERT_TZ中使用"EDT",但没有成功。
不要使用'EST'
。使用'America/New_York'
(假设美国)。