サインアップフォームでユーザーのタイムゾーンを検出するにはどうすればよいですか?
質問
タイムゾーンを数十のオプションから選択するのは難しい場合があります。このプロセスをもっと簡単にしたいと考えています。私は、最良の推測を実行できるいくつかのフォームを実際に見たことがあります。解決策を探してグーグルしましたが、運がありませんでした。誰かがそれを行う方法を知っていますか?
解決
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>