ホームページ >バックエンド開発 >PHPチュートリアル >PHP でクライアントのタイムゾーンを確認するにはどうすればよいですか?

PHP でクライアントのタイムゾーンを確認するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-03 02:28:02469ブラウズ

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 から送信された時刻オフセットをセッション変数 "time" に保存するだけです。

仕組み:

  1. JavaScript コードはクライアント側で実行され、ユーザーのタイムゾーン オフセットを検出します。
  2. セッション変数 $timezone が空の場合 (最初の訪問)、オフセットをタイムゾーンに送信します。 AJAX 経由の .php。
  3. timezone.php は、セッション変数「time」にオフセットを保存します。
  4. クライアントのタイムゾーン情報は、$timezone を使用してサーバー側でアクセスできるようになりました。

以上がPHP でクライアントのタイムゾーンを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。