2014-02-14 51 views
0

簡單的場景:根據位置處理日期的最佳方法。 SQL/JS

李四住在加利福尼亞州和訊息上留言。 Jane Doe住在馬里蘭州,並觀看評論。

我用來處理基於本地網站通常使用GETDATE()。處理這個問題的最好方法是什麼,以便John和Jane根據他們的時間地點查看日期?我是否根據javascript函數向SQL查詢發送參數以獲取其時區?有沒有更好的辦法?

一個很好的例子是Facebook。他們如何處理所有不同的時區?它是客戶端嗎?服務器端?等等。

謝謝!

+0

格林威治標準時間或Z時間(祖魯)在任何地方都是一樣的。時區調整隻是一個演示級別的詳細信息。 – jww

回答

0

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

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

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

當顯示回任您提供的時區相當於從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

+0

謝謝。這非常有幫助! – user1447679