2010-04-26 212 views
0

我們有一個網站,當前在某個時間(由用戶選擇)運行拍賣,這一切都工作正常,因爲當服務器打到時間拍賣會開始。然後,我們必須添加時區,這取決於用戶居住的地點。這會根據所選擇的下拉菜單添加或取消一定的小時數,我們再次使用這個工作正常,但是當時鍾向前移動時,一切都很順利,花了我一些時間來解決現在管理的夏令時問題打破一切。時區,夏令時等

我知道有一個解決這個問題的方法,因爲很多人一定會碰到它,但我似乎無法解決這個問題。

我們的服務器當前運行UTC。

任何幫助將是巨大的......

回答

1

我不是這個100%,但我要說的是,只要你的區數據庫(你的linux系統的一部分)是先進的日期,那麼你應該可以這樣做:

<?php 
$currentTimezone = date_default_timezone_get(); 
date_default_timezone_set($usersTimezone); 
echo date('j F Y G:i:s'); // Time shown in user's timezone, DST accounted for 
date_default_timezone_set($currentTimezone); 
?> 

如果你看看PHP的日期函數,可能會有更少的曲折方法來做到這一點。我只是不太瞭解這些功能;)

+0

它實際上看起來像你可以創建一個DateTimeZone實例並要求偏移量。這應該考慮到DST,我會想象的。這基本上是你的時區數據庫的工作來維護所有的東西。 – d11wtq 2010-04-26 09:56:26

+0

我可以證實這一點。我只是通過詢問目前在DST的歐洲/倫敦的時間來測試它。我在澳大利亞/墨爾本,我們不在DST。該劇本現在正確輸出倫敦的時間。 – d11wtq 2010-04-26 09:58:49

+0

我一直在使用date_default_timezone_set及其幾乎那裏,只有一個最後的障礙,以及數據發送到閃存後一小時內......但這是一個全新的問題! – jimbo 2010-04-29 11:28:33