2012-06-30 106 views
0

我有一個字符串,其中包含日期/時間,我知道它目前在澳大利亞/悉尼時區。更改悉尼日期格林威治標準時間到PHP

我現在需要將其更改爲GMT時間。

我想這一點,但它不更改日期:

$dateString = '2012-06-29 11:09:12'; // this is in Australia/Sydney timezone 
$gmtDate = gmdate('Y-m-d H:i:s', strtotime($dateString)); 
print_r($gmtDate); // output is 2012-06-29 11:09:12 

如何減去GMT莫名其妙的偏移,對不起,開始有點糊塗了。

回答

4

也許你的網絡服務器沒有設置在澳大利亞/悉尼時區? 以下的答案將會有助於你:how to convert php date formats to GMT and vice versa?

這裏是你可以做什麼:

$melbourne = new DateTimeZone('Australia/Melbourne'); 
$gmt = new DateTimeZone('GMT'); 

$date = new DateTime('2011-12-25 00:00:00', $melbourne); 
$date->setTimezone($gmt); 
echo $date->format('Y-m-d H:i:s'); 
// Output: 2011-12-24 13:00:00 
// At midnight on Christmas eve in Melbourne it will be 1pm on Christmas Eve GMT. 

echo '<br/>'; 

// Convert it back to Australia/Melbourne 
$date->setTimezone($melbourne); 
echo $date->format('Y-m-d H:i:s'); 
3

在腳本中使用的ini_set()設置當前時區到如那是在洛杉磯所用的時區,你可以這樣做:

ini_set('date.timezone', 'America/Los_Angeles'); 

所有後續請求日期和時間函數將使用美國/洛杉磯的時區。

如果您需要在您的腳本中執行此操作,例如,如果您使用的Web服務器與您希望在腳本中使用的日期和時間不在同一個時區,那麼您應該確保呼叫是在腳本的開始(或者,如果可以的話,將設置移動到.htaccess文件)。

+0

沒錯工作:) THX – user1067698

相關問題