[JavaScript] PCのタイムゾーン・時差情報の活用

ウェブ上のアプリケーションのM18Nが進んできました。
日本人(日本語ユーザ)が使うときは、
メニューなどが日本語表示がデフォルトだとありがたいはず。
ウェブサーバ側でブラウザの言語選択の設定状況を取得して、
自動判別によって表示言語を切り替えるサイトもあったりしますが、
日本語については、タイムゾーンからも概ね判定できそう。
 
↓は日本からのアクセスを、日本語版ページのURLに自動的に飛ばします。

<script><!--
    var dd = new Date();
    var tz = ( dd.getHours() - dd.getUTCHours() + 24 ) % 24;
    if ( tz == 9 ) { // Japan Standard Time
        location.href = 'http://www.kawa.net/xp/index-j.html';
    }
//--></script>

変数 tz の値には、UTC(≒グリニッジ標準時)との時差が入ります。
イギリスより西側の UTC-1 以下の地域では、24を足した値になります。
15分単位で時間帯が設定されている地域もあるので、より正確には
getMinutes() も併用する必要がありますが、今回は不要です。
夏時間もどうなるのか確認していません。
(日本に夏時間が導入されない限りは、↑の用途では影響ない)

また、UTC+9 時間帯は、韓国やパラオ、ロシアのヤルクーツク付近など
日本以外の地域でも使われていて、同じ値が出てしまいますから、
例えば韓国のPCからアクセスしたものも区別できません。

また、日本国内からアクセスする外国人の方もいらっしゃるでしょうし、
そもそもタイムゾーンを正しく設定していないPCもあるでしょうから、
厳密な判別ができているわけでもありません。

日本と同じ時間帯のPCを全て日本語扱いする、傲慢な処理とも言えるので、
もちろん自動判別した後で手動再変更できるような、救済策も必要です。

試しにKawa.netトップページに導入してみました。

PS)
裏技ネタとして、カトマンズ時間に切り替えないと見れないコンテンツ、とかどうだろう?

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 1

かわいい

この記事へのコメント

nanto_vi
2006年10月02日 23:29
こんにちは。そのものずばりgetTimezoneOffsetメソッドを使ってはいかがでしょうか。夏時間のときはその分ずれた値が返ってくるそうですが。
if (new Date().getTimezoneOffset() / 60 == -9) { ... }
2006年10月03日 09:18
おお、そんなメソッドがあるんですね。それがいいですね。

この記事へのトラックバック