如何在 PHP 中決定客戶端的時區?

DDD
發布: 2024-11-03 02:28:02
原創
406 人瀏覽過

How to Determine a Client's Timezone in PHP?

如何在 PHP 中確定客戶端的時區

檢索客戶端的時區在各種情況下都很有價值。本題探討了一種結合 JavaScript 和 PHP 來取得客戶端時區的方法,確保準確的時間顯示、時區特定操作或地理定位。

解決方案:

  1. PHP 伺服器端程式碼: 建立一個PHP 檔案並在下列位置包含以下程式碼開頭:
<code class="php">session_start();
$timezone = $_SESSION['time'];</code>
登入後複製

此程式碼設定一個名為「time」的會話變數來儲存客戶端的時區。

  1. JavaScript 用戶端程式碼: 將以下程式碼加入HTML 頭部:
<code class="html"><script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        if("<?php echo $timezone; ?>".length==0){
            var visitortime = new Date();
            var visitortimezone = "GMT " + -visitortime.getTimezoneOffset()/60;
            $.ajax({
                type: "GET",
                url: "http://domain.com/timezone.php",
                data: 'time='+ visitortimezone,
                success: function(){
                    location.reload();
                }
            });
        }
    });
</script></code>
登入後複製

此腳本偵測PHP $timezone 變數是否為空(表示尚未設定客戶端時區)並使用JavaScript 從瀏覽器檢索客戶端的時間偏移。然後,它使用此偏移量向伺服器上的 PHP 腳本發送 AJAX 請求。

  1. 伺服器上的Timezone.php 腳本: 建立一個名為timezone.php 的新PHP 文件,其中包含以下程式碼:
<code class="php">session_start();
$_SESSION['time'] = $_GET['time'];</code>
登入後複製

此PHP 腳本只是將AJAX 發送的時間偏移儲存在會話變數中「時間」。

工作原理:

  1. JavaScript 程式碼在客戶端運作並偵測使用者的時區偏移。
  2. 如果會話變數 $timezone 為空(第一次造訪),它將透過以下方式將偏移量傳送至 timezone.php AJAX。
  3. timezone.php 將偏移量儲存在會話變數「time」中。
  4. 現在可以使用 $timezone 在伺服器端存取客戶端的時區資訊。

以上是如何在 PHP 中決定客戶端的時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板