2014-02-16 22 views
1

嗨,
從客戶端我發送到服務器的數據與ISO格式的當前日期。在將它發送到服務器之前,我使用 new Date().toISOString()來編寫日期時間。當我將所有數據從服務器恢復到客戶端時,我會在服務器的時區中收到日期時間。
如何將一個時區的服務器時間轉換爲客戶端的本地時間?

例如:
在服務器上我有這樣的日期值 - "2014-02-16T03:10:13.383"
在客戶端上應轉換爲本地時間 - "2014-02-16T13:10:13.383"

我應該如何轉換日期時間從服務器到客戶端的本地時間?

+0

而你想用JavaScript做到這一點? 'VAR currentTime的=新的日期() \t變種小時= currentTime.getHours() \t變種分鐘= currentTime.getMinutes() ' – jycr753

+0

你可能會更好傳遞一個劃時代的時間戳。這不需要太多的處理 – Lix

+0

@josser請讓我知道,如果我的答案適合你或如果你有任何問題的答案。請接受我的答覆作爲正確的答案,如果它對您有用 - 以便其他用戶可以從中受益:知道答案有效並將問題標記爲「已答覆」。 – DhruvJoshi

回答

0

處理通常是兩倍。要在服務器端處理它,您需要可靠的時區信息。這通常是從用戶的個人資料頁面中的時區首選項獲得的。

話雖如此,我們需要確保客戶端捕獲的所有日期數據以及存儲在數據庫中的日期數據都是UTC格式。 JS函數爲UTC日期時間提供了支持。

當你存儲你在JS中使用UTC()方法來獲取日期。

當顯示回任您提供的時區相當於從DB(基於存儲的用戶時區數據),或使用JS從瀏覽器的語言環境得到像這樣

<script type="text/javascript"> 
     function showDateInClientSideFormat(dValue) 
     { 
      var d = new Date() 
      var n = d.getTimezoneOffset(); 
      var dateClientSide = new Date(dValue +n); 
      return dateClientSide; 
     } 
    </script> 

而且在這裏看到我的回答https://stackoverflow.com/a/21573366/1123226和另一個偉大的SO鏈接How can I handle time zones in my webapp?

相關問題