ホームページ  >  記事  >  ウェブフロントエンド  >  ユーザーのタイムゾーンを正確に検出するにはどうすればよいですか?

ユーザーのタイムゾーンを正確に検出するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 11:38:02677ブラウズ

How to Accurately Detect a User's Timezone?

ユーザーのタイムゾーンの検出: 詳細

ユーザーの現在のタイムゾーンを決定することは、多くの Web アプリケーションにとって重要なタスクです。イベントの正しい時刻を表示する場合でも、場所に基づいてエクスペリエンスをカスタマイズする場合でも、正確なタイムゾーンの検出は不可欠です。

提案されるアプローチの 1 つは、新しい 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>

これスクリプトはユーザーのタイムゾーンを検出し、それを指定されたサーバー エンドポイントに送信し、そこでさらなる処理が行われます。その後、エンドポイントはその情報を使用して、ユーザーの実際の位置に基づいてユーザー エクスペリエンスをカスタマイズできます。このアプローチは、ユーザーのタイムゾーンをリアルタイムで検出するための信頼性が高く効率的な方法を提供します。

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

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