ホームページ  >  記事  >  ウェブフロントエンド  >  訪問者のタイムゾーンを動的に検出する方法: 包括的なガイド

訪問者のタイムゾーンを動的に検出する方法: 包括的なガイド

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 15:00:29233ブラウズ

How to Dynamically Detect Visitors' Timezones: A Comprehensive Guide

訪問者のタイムゾーンを動的に検出する

はじめに: ユーザーのタイムゾーンの決定は、イベントのスケジュール設定、ローカライズされたコンテンツの表示など、さまざまなアプリケーションにとって重要です。 、または単にユーザーエクスペリエンスを調整することもできます。ただし、この情報の取得は困難な場合があります。

タイムゾーン検出について:

一般的なアプローチの 1 つは、新しい Date().getTimezoneOffset()/60 式を使用することです。この式は、UTC (協定世界時) からのオフセットを時間単位で計算します。たとえば、ユーザーのシステム時間が UTC より 3 時間進んでいる場合、結果は 3 になります。

曖昧さの克服:

ただし、タイムゾーン オフセットだけでは、十分な情報。夏時間のため、一年の特定の時期には、異なるタイムゾーンでも同じオフセットが適用される場合があります。このようなあいまいさを処理するには、より洗練された方法が必要です。

クライアント側のタイムゾーン検出:

1 つのアプローチは、IP ルックアップ サービスを活用するクライアント側のスクリプトを利用することです。地理位置情報データベースを使用して、ユーザーの IP アドレスに基づいて最も可能性の高いタイムゾーンを決定します。これは、信頼性が高く相互互換性のあるソリューションを提供する jstz.min.js のようなライブラリを使用して実現できます。

実装例:

PHP アプリケーションでタイムゾーンを確認するには、次のアプローチに従います。

<code class="php"><script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.4/jstz.min.js"></script>
<script>
  $(document).ready(function(){
    var tz = jstz.determine(); // Determine the client's timezone
    var timezone = tz.name(); // Get the timezone name, e.g. "Asia/Kolkata"
    $.post("process_timezone.php", {tz: timezone}, function(){
      // Handle the timezone in the PHP script and refresh the page
    });
  });
</script></code>

このコード スニペットは、検出されたタイムゾーンをサーバー側のスクリプトに送信し、データベースの更新や Cookie の設定などのさらなる処理を実行できます。タイムゾーン情報を保持します。

以上が訪問者のタイムゾーンを動的に検出する方法: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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