2015-09-07 47 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時區的格式化日期的時間戳。我已經顯示格式化的日期,意識到這些日期並不相同 –