透過 IP 或 HTTP 標頭確定使用者時區
了解如何偵測使用者目前的時區對於各種應用程式至關重要。本文透過深入研究 new Date().getTimezoneOffset()/60 的含義來闡明如何實現這一目標。
解開new Date().getTimezoneOffset()/60
語法new Date().getTimezoneOffset()/60 提供本地時間和協調時間之間的偏移量(以小時為單位)世界時間(UTC)。它傳回一個值,表示本地時間早於或晚於 UTC 的小時數。例如,數值 5.5 表示本地時間比 UTC 早 5 小時 30 分鐘。
修改 PHP 的預設時區
動態設定時區在使用者的 IP 或 HTTP 標頭上,建議使用解析此資訊的外部函式庫。以下是使用jstz.min.js 函式庫的範例:
<script> $(function() { var tz = jstz.determine(); var timezone = tz.name(); // e.g.: "Asia/Kolkata" for Indian Time // Send a POST request to the controller to handle the timezone $.post("timezone-handler.php", { tz: timezone }, function(data) { // Process the timezone in the controller and refresh the page if successful }); }); </script>
用於處理時區的控制器函數
控制器函數將接收時區資訊並且可以處理它設定適當的PHP時區:
<?php // Get the timezone from the POST request $timezone = $_POST['tz']; // Validate and set the PHP timezone if (!empty($timezone)) { date_default_timezone_set($timezone); } ?>
透過實作這些步驟,您可以動態偵測並設定使用者的時區,確保您的 Web 應用程式準確計時。
以上是如何在Web應用中準確判斷並設定使用者的時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!