2012-06-24 34 views
0

我有一個Web服務器,我不知道時區設置爲什麼。PHP在不同時區從服務器獲取英國當地時間

現在是上午10:49在英國,但是當我運行以下命令:

$sTime = gmdate("d-m-Y H:i:s"); 
print 'The time is: ' . $sTime; 

服務器返回以下時間。

The time is: 24-06-2012 09:49:57 

現在我不想只是「添加」一小時到時間,因爲時間還需要時間時向前移動1小時或後1小時是正確的。

有沒有辦法讓倫敦的實際時間?

僅供參考 - 我自己也嘗試沒有任何的運氣如下:

date_timezone_set('Europe/London'); 
$sTime = gmdate("d-m-Y H:i:s"); 
print 'The time is: ' . $sTime; 

提前非常感謝。

+0

您應該啓用錯誤報告功能,以便您瞭解什麼不適用於您的代碼,例如,你使用'date_timezone_set'函數的方式。 – hakre

+0

可能的重複[轉換時區在php](http://stackoverflow.com/questions/9835256/convert-timezone-in-php) – hakre

+0

或許多其他人喜歡[我怎樣才能得到用戶的本地時間,而不是服務器的時間?](http://stackoverflow.com/questions/2705067/how-can-i-get-the-users-local-time-instead-of-the-servers-time) – hakre

回答

7

請不要在這裏使用gmdate(「d-m-Y H:i:s」),因爲它會返回GMT。而是使用日期(「d-m-Y H:i:s」)。 試試這個 -

date_default_timezone_set('Europe/London'); 
$sTime = date("d-m-Y H:i:s"); 
print 'The time is: ' . $sTime; 
+0

完美,工作!唯一的是我認爲倫敦是GMT? – Gravy

+3

僅在今年的部分時間:夏天是GMT時間前一小時的BST(英國夏令時)。 – deltab

相關問題