2011-04-01 89 views
0

我想製作一個顯示時間依賴於特定國家/地區的時區的系統。例如。我的數據庫中的表格包含一個字段中的國家/地區名稱,在其旁邊的列中將包含格林威治標準時間比較時區,如-0100或-0200。根據數據庫中的時區設置時間

我需要在網頁上做什麼,然後設置當前GMT時間($ time),然後從數據庫中提取信息並將$ time更改爲GMT -1或GMT -2。

有人能告訴我什麼是最簡單的方法嗎?

感謝所有幫助

編輯:

到目前爲止,我有這樣的代碼:

<?php 

$time = date("H:i:s", time()); 
echo $time; 
echo "<br/><br/>"; 
$myDateTime = new DateTime($time, new DateTimeZone('GMT')); 
$myDateTime->setTimezone(new DateTimeZone('Antarctica/South_Pole')); 
echo $myDateTime->format('Y-m-d H:i'); 
?> 

這似乎做的工作,我可以進入數據庫「南極洲/南極'而不是GMT -/+時間。從長遠來看,這會做好工作嗎?

另外,使用這種方法,夏令時會計算出來嗎?

+0

我並不完全關注你,但爲什麼你不只是在UTC中以UTC(格林威治標準時間)格式存儲時間戳,並根據當前用戶的時區將這些時間轉換爲本地時間? – wimvds 2011-04-01 13:54:04

+0

此頁面只能在我們的辦公室查看。我們需要的是,如果有人從阿富汗打來的電話,我們需要在頁面上寫上一段說'GMT time'的文章,然後是另一篇說'當地時間'的文章,並在阿富汗提供時間。 – 2011-04-01 14:01:48

回答

0

使用DateTimeZone是正確的方法。

如果您使用zoneinfo鍵(例如America/New_York或南極洲/ South_Pole,如您的示例)提供它,夏令時將被計入結果中,如果您只有一個天真的數據庫UTC偏移量存儲。