我正在尋找有關在用戶當前時區以外的時區顯示Web應用程序中的時間的建議。Web應用程序中的時區敏感日期和時間顯示?
我們將UTC/GMT的日期/時間存儲在數據庫中,所以格式化UTC/GMT或用戶當前時區的時間不是問題。但是,在其他情況下,我們需要從任意時區的角度顯示時間(即,本頁面上的每個日期/時間都是東部的,無論用戶是否在西海岸,中部,東部,等等。)。
過去我們已經存儲了偏移量或時區信息,然後在.Net的服務器代碼中完成了計算,否則我們在JavaScript中做了一些客戶端操作,我寧願避免,因爲它變得非常依賴於javascript和用戶的瀏覽器。我想知道在更多客戶端/ MVC類型應用程序中執行此操作的最佳方法。
下面是一個例子:存儲在分貝
- 日期:1302790667(星期四,2011年4月14日十四時17分47秒GMT)在中部時區中的客戶端顯示
- 轉換日期:星期四四月14 9點17分47秒2011
- 日期其實我是想在東部時區顯示,總:週四4月14日十時17分47秒2011
在上面的例子中,可以很容易地獲得時間UTC(#1)或用戶當前時區(#2)但是獲得#3比較困難。我的選擇似乎是:在數據庫
- 商店偏移或時區,並在客戶端上執行計算 - 這就是我們在與.net過去所做的那樣,但它似乎在客戶端代碼,甚至是混亂我們目前正試圖避免的路徑。
- 在服務器上進行轉換併發送完整日期以顯示給客戶端 - 客戶端收到一個字符串(「Thu Apr 14 10:17:47 2011」)。這有效,但它不是很靈活。
- 在服務器上進行轉換,將其分解成幾部分並將它們發送給客戶端,然後將它們放回到一起。 (「{DayOfWeek:Thu,Month:Apr,Day:14,Hour:10,Minute:17}」)。這給了我們正確的數據,並給了我們在日期格式化方面的更多靈活性,但是對於這種情況感覺有點不對。
任何其他選項的想法?其他人如何處理類似的情況?謝謝。
你最終使用了什麼?我即將試用[此](https://github.com/csnover/js-iso8601),我有相同的客戶要求,我正在爭分奪秒! – blong 2011-09-29 13:20:30
我們最終完成了服務器上的所有計算。我會添加一個答案。 – 2011-09-29 17:51:00