2015-09-07 167 views
1

我在生产服务器上检查了我的mysql系统时区SELECT @@system_time_zone;及其返回EDT。现在我想生成相同的时区(即EDT)当前时间戳,该时间戳不起作用。这是我到目前为止已经试过是奇怪的时区问题EDT/EST

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的系统时区(美国东部时间/ EST)当前时间戳?从proessional任何帮助appricated

+0

你试过使用'EST5EDT'而不是'EST'吗? – ESG

+0

@ESG勾选,什么也没有发生。结果 –

回答

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

我希望我帮你

+0

我需要基于MySQL时区的格式化日期的时间戳。我已经显示格式化的日期,意识到这些日期并不相同 –