PC |
2010/09/03(金) 16:56
ごく普通にJavascriptのdate()関数を使うと
ローカルマシンの時刻を拾ってしまうので
NTPサーバーに問い合わせて日本の正確な時刻を取得し
時間の狂っているPC
海外からのアクセス
でも、スペインの時刻を正しく表示するJavaScript。
日本標準時プロジェクトで用意してくれているJSONP形式の時刻データから
日本時間 - (スペインの時差)8時間 = スペイン時間。を、表示する。
他の国の時刻を表示したい場合は時差を調べ、よきにはからって書き換えてください。
PASOL.netのこのページのコードをカスタマイズしました。
以下のコードをブログパーツとして記述しました。
・FC2.comの場合は、「プラグインの設定」→「フリーエリア」を追加。
・「フリーエリア」プラグインでHTMLを有効にして以下のコードを丸ごと書きました。
<script type="text/javascript">
var madrid;
function jsont(json){
var japan = new Date(json["st"] * 1000); //日本の正確な時間
madrid = new Date( japan.getTime() - 7*60*60*1000); //マドリッド時間
setTimeout("printTime()", 1000);
}
function printTime(){
madrid.setSeconds( madrid.getSeconds() + 1);
document.getElementById("myClock").innerHTML = madrid.toLocaleString();
setTimeout("printTime()", 1000);
}
</script>
<script type="text/javascript" src="http://ntp-a1.nict.go.jp/cgi-bin/jsont">
</script>
<div id="myClock"></div>
曜日がはいってないし
24時間表記だと13:00より前は午前だか午後だかわかりにくい。
ここまでくれば、getYear()とかgetDay()とかで個別に日時をとれるので
気が向いたらちゃんと表示を整えると思う。
7時間しか引いていないのは、現在夏時間だからです。
プログラミング的にはたいしたことないので
気が向いたら夏時間処理を書くと思います。
■2010年9月5日追記
サマータイム処理は、ロジック自体はラクショラクショなるも
コーディングがやけに面倒臭い……。
ちゅか、細かいコードをたらたら書かなくちゃならなくて
なんかソースが汚くなったから途中でやんなった。
完成品はコチラ
ローカルマシンの時刻を拾ってしまうので
NTPサーバーに問い合わせて日本の正確な時刻を取得し
でも、スペインの時刻を正しく表示するJavaScript。
日本時間 - (スペインの時差)8時間 = スペイン時間。を、表示する。
他の国の時刻を表示したい場合は時差を調べ、よきにはからって書き換えてください。
・FC2.comの場合は、「プラグインの設定」→「フリーエリア」を追加。
・「フリーエリア」プラグインでHTMLを有効にして以下のコードを丸ごと書きました。
<script type="text/javascript">
var madrid;
function jsont(json){
var japan = new Date(json["st"] * 1000); //日本の正確な時間
madrid = new Date( japan.getTime() - 7*60*60*1000); //マドリッド時間
setTimeout("printTime()", 1000);
}
function printTime(){
madrid.setSeconds( madrid.getSeconds() + 1);
document.getElementById("myClock").innerHTML = madrid.toLocaleString();
setTimeout("printTime()", 1000);
}
</script>
<script type="text/javascript" src="http://ntp-a1.nict.go.jp/cgi-bin/jsont">
</script>
<div id="myClock"></div>
曜日がはいってないし
24時間表記だと13:00より前は午前だか午後だかわかりにくい。
ここまでくれば、getYear()とかgetDay()とかで個別に日時をとれるので
気が向いたらちゃんと表示を整えると思う。
7時間しか引いていないのは、現在夏時間だからです。
プログラミング的にはたいしたことないので
気が向いたら夏時間処理を書くと思います。
■2010年9月5日追記
サマータイム処理は、ロジック自体はラクショラクショなるも
コーディングがやけに面倒臭い……。
ちゅか、細かいコードをたらたら書かなくちゃならなくて
なんかソースが汚くなったから途中でやんなった。
完成品はコチラ
トラックバック
コメント