2015-07-11 179 views
-1

在我的網絡應用程序,如電子商務網站。每個項目都有時間限制。我會在每個項目中顯示剩餘時間細節。我正在使用UTC time.how爲每個用戶轉換當前本地時間。例如,美國有4或5個不同的時區。我使用php codeigniter併爲我的web應用程序的mysql如何在我的web應用程序中自動將UTC時間更改爲當前本地時間。

+0

這是一個廣泛的討論點,已經討論過很多次了。請搜索,閱讀現有答案,然後詢問您是否有*特定*問題。 [tag:timezone]或[tag:datetime]標籤廣泛適用於此主題。 –

回答

1

如果我是你,我會保持所有時間在你的服務器端UTC,並只通過JavaScript轉換爲客戶端的本地時間。然而,處理客戶時間是棘手的,因爲你無法真正瞭解他們的時間。

我已經看到了3種方法:

1)使用var offset = new Date().getTimezoneOffset();

可能獲得客戶端系統時區以自動方式的最佳途徑。

2)嘗試找出客戶端IP的時區。

如果您需要在服務器上完成渲染時間,這可能是我唯一可以自動完成的自動方法。但它很容易出錯,因爲你的客戶端可能使用代理,VPN等。另外,geoIP數據庫可能不夠準確。

3)讓用戶設置時區。

這是在玩它安全。用戶可以決定。您也可以使用cookie等設置。

momentjs timezone library可能會幫助你所有三種方法。

+0

WRT#1,僅獲得*當前偏移*,而不是時區。這對服務器端轉換沒有幫助,因爲偏移量可能會在夏時制等時區內發生變化。請參閱[時區標記wiki](http://stackoverflow.com/tags/timezone/info)中的「時區!=偏移量」。 –

+0

這就是我寫客戶端的原因。獲得真實時區可能非常棘手。我傾向於讓用戶設置它。我仍然認爲OP應該在服務器上保持UTC的時間,並只處理客戶端的時區問題。 – luksch

相關問題