サインアップフォームでユーザーのタイムゾーンを検出するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/768007

  •  12-09-2019
  •  | 
  •  

質問

タイムゾーンを数十のオプションから選択するのは難しい場合があります。このプロセスをもっと簡単にしたいと考えています。私は、最良の推測を実行できるいくつかのフォームを実際に見たことがあります。解決策を探してグーグルしましたが、運がありませんでした。誰かがそれを行う方法を知っていますか?

役に立ちましたか?

解決

JavaScript:

var today = new Date();

alert( today.getTimezoneOffset() );

これにより、オフセット (GMT-X) が得られますが、実際のタイムゾーン名は得られません。同じ GMT オフセットは複数のタイムゾーンに対応でき、夏時間も考慮する必要があることに注意してください。ただし、ユーザーにドロップダウンからタイムゾーンを選択させるという点を除けば、これがおそらく最も簡単に開始できる場所です。

他のヒント

あなたは一連のリストに自分のIPアドレスを照合することによって、ユーザーの国を検出しようとすることができます。そこにこれを達成するためのさまざまな方法がありますが、最高のは、このAPI を使用することです。

の使用例は次のようになります。 http://nl.ae/ iptocapi.php?タイプ= 1&IP = 00.00.00.00 に。これは、そのIPアドレスの国コードを返します。そして、タイムゾーンを持つ国コードと一致することは非常に簡単です。

あなたはタイムゾーンにドロップダウンボックスの既定値として使用することができ、この方法を発見したらます。

私はここにはるかに優れた堅牢な解決策を見つけた:<のhref =「http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/」のrelを= "nofollowをnoreferrer"> http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/ を。

著者が説明するように、Date.getTimezoneOffset()が矛盾してます。

あなたが使用することができます<のhref = "https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6016329.html" のrel = "nofollowをnoreferrer 「>多かれ少なかれ確実にタイムゾーンのオフセットを決定するのJavaScriptを。 HTTP、私の知る限りでは、サーバー上のクライアントのタイムゾーンを決定するためにあらゆる手段を提供しません。

JavaScriptを使用ます:

<input type="hidden" id="visitorTZ" name="visitorTZ" />
<script type="text/javascript">
    d = new Date();
    document.getElementById('visitorTZ').value = d.getTimezoneOffset()/60; 
</script>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top