偵測使用者的時區:深入研究
確定使用者目前的時區對於許多Web 應用程式來說是一項至關重要的任務。無論是顯示事件的正確時間還是根據位置自訂體驗,準確的時區偵測都是至關重要的。
建議的一種方法是使用新的 Date().getTimezoneOffset()/60 表達式。此代碼傳回使用者本地時間和協調世界時 (UTC) 之間的差異(以小時為單位)。但是,此方法有缺點,因為它沒有考慮夏令時或更細緻的時區規則。
要獲得更全面的解決方案,請考慮Matt Johnson 的建議:
使用JavaScript 庫"jstimezonedetect" 提供了一種基於各種因素確定用戶時區的可靠方法。此函式庫利用基於位置和基於 IP 的機制為使用者位置分配最準確的時區。
以下程式碼片段示範如何實作此方法:
<code class="html"><script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.4/jstz.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ var tz = jstz.determine(); // Determines the time zone of the browser client var timezone = tz.name(); // For e.g.: "Asia/Kolkata" for the Indian Time. $.post("url-to-function-that-handles-time-zone", {tz: timezone}, function(data) { // Preocess the timezone in the controller function and get // the confirmation value here. On success, refresh the page. }); }); </script></code>
This腳本將偵測使用者的時區並將其傳送到可以進行進一步處理的指定伺服器端點。然後,端點可以使用該資訊根據使用者的實際位置自訂使用者的體驗。這種方法提供了一種可靠且高效的方法來即時檢測使用者的時區。
以上是如何準確偵測使用者的時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!