奇怪的时区问题EDT / EST

时间:2015-09-07 10:43:34

标签: php mysql datetime

我已经使用SELECT @@system_time_zone;检查了我的mysql系统时区,并在生产服务器中返回了EDT。现在我想生成相同的时区(即EDT)当前时间戳,它不起作用。这是我到目前为止所尝试的是

date_default_timezone_set('EST');
$ts = strtotime('now');
echo date('Y-m-d H:i:s',$ts);

$date = new DateTime(null, new DateTimeZone('EST'));
$ts = $date->getTimestamp();
echo date('Y-m-d H:i:s',$ts);

它的输出是2015-09-07 05:38:43但我的mysql日期(时间戳)是2015-09-07 06:39:53所以它不相同。 (通过插入同一时间测试)

所以如何根据mysql的系统时区获取当前时间戳(EDT / EST)?专业的任何帮助

1 个答案:

答案 0 :(得分:0)

可以像这样检索全局和客户端特定时区的当前值:

mysql> SELECT @@global.time_zone, @@session.time_zone;

并尝试使用此代码设置时区和时区位置

<?php
$date = date_create('2000-01-01', timezone_open('Pacific/Nauru'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";

date_timezone_set($date, timezone_open('Pacific/Chatham'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";
?

注意第二个PHP代码只是一个例子。

我希望我能帮到你