奇怪的时区问题EDT/EST


strange timezone issue EDT/EST

我已经检查了我的mysql系统时区与SELECT @@system_time_zone;及其返回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)??感谢专业人士的帮助

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

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代码只是一个例子。

希望对你有所帮助