「hogemonia_mk2式Webサーバ時間取得スクリプト『get_server_time.js』適当制作20分えでぃしょん」は、このサイトで別途公開されているget_server_time.phpと共に利用することで、Webサーバに設定されている時刻を取得することができるスクリプトファイルです。
詳しい説明は、下のほうにありますのでご覧ください。
ちなみに、下の見本のようなものなら結構簡単に出来ます。
(見本は、説明内に書かれている~使用例2~を実行したものです)
見本 ~使用例2~
このJavaScriptファイル(jsファイル)を利用する際、JavaScriptファイルとHTMLファイルの文字コード(エンコード)が一致している必要があります。
なので、ここでは複数の文字コードのJavaScriptファイルを用意しました。ご自分の環境にあったファイルをダウンロードしてください。
「get_server_time.js」のダウンロード
以下に、スクリプトファイル内に書かれている説明書きをそのまま載せておきます。
//////////////////////////////////////////////////////////////////////
// hogemonia_mk2式 "get_server_time.js" 適当制作20分えでぃしょん
// Ver.0.0.0.1beta <~~~~~版>
// Webサーバ時間取得スクリプト
// http://blog.mct-lab.com/
// Copyright 2007 by HoGeMoNiA_mkII
//////////////////////////////////////////////////////////////////////
~説明~
このスクリプト"get_server_time.js"と"get_server_time.php"
の2つのスクリプトを使用することで、Webサーバに設定されている時刻
(今貴方が使っているPC<以下コメントでは"ローカルPC"と呼ぶ>の時刻ではない)
をhttp経由で取得することができます。
ただし、回線によるタイムラグやスクリプトの処理にかかる時間があるので、
絶対に正確な訳ではありません。1秒ずれることは無くとも、100ミリ秒ぐらいは
ずれると思います。
また、phpファイルを利用するので、利用にはphpが動くサーバが必要です。
~使用方法~
このスクリプト「get_server_time.js」の設定項目SEV_php_urlを正しく設定した上
get_server_time.phpをphpが利用可能なWebサーバにアップロードした後、
任意のHTMLファイルにこのjsファイル「get_server_time.js」を読み込ませると、
グローバル変数SEV_T_plusminusにサーバ時間とローカルPC時間の時間差が
ミリ秒の単位(1000分の1秒単位)で代入されるので、必要に応じて利用してください。
以下に使用例を載せて起きます。
get_server_time.jsは読み込ませるHTMLファイルと同じ文字コードである必要があります。
このスクリプトの初期状態での文字コードは3行目に書いてあります。
~使用例1~
adhgm_clock.jsを使ってWebサーバ時刻を表示させる例
get_server_time.phpをWebサーバにアップロードし、
このget_server_time.jsの設定項目SEV_php_urlを正しく設定した上、
adhgm_clock.jsを読み込ませるHTMLファイルと同じフォルダにこのget_server_time.jsを
アップロードし、このget_server_time.jsをHTMLファイルの
<HEAD>~</HEAD>の間に以下のソースを貼り付けることで読み込ませてください。
<script type="text/javascript" src="get_server_time.js"></script>
~使用例2~
Webサーバの時間をリアルタイム(っぽく)ページに表示させる例
get_server_time.phpをWebサーバにアップロードし、
このget_server_time.jsの設定項目SEV_php_urlを正しく設定した上、
以下のHTMLファイルをこのget_server_time.jsと同じフォルダに置いてください
============================ HTML ここから ==================================
<HTML>
<HEAD>
<TITLE>Webサーバの時計とローカルPCの時計</TITLE>
<script type="text/javascript" src="get_server_time.js"></script>
</HEAD>
<BODY onLoad="Clock()">
<SCRIPT TYPE="text/javascript"><!--
function Clock(){
now = new Date(); //ローカルPCの現在時刻を取得
server = new Date(); //サーバ時間のほうもひとまず現在時刻を取得
server.setTime(server.getTime() - SEV_T_plusminus); //サーバとの時間差がグローバル変数SEV_T_plusminusから得ることが出来ます。
clock1 = now.toLocaleString(); // ローカルPC時間
clock2 = server.toLocaleString(); // サーバ時間
if (SEV_T_plusminus < 0){jikansa_mojiretu = (SEV_T_plusminus * -1) + "ミリ秒遅れています";} //SEV_T_plusminusがマイナスのときはローカルPC時間がサーバ時間に対して遅れているときです。
else if (SEV_T_plusminus > 0){jikansa_mojiretu = SEV_T_plusminus + "ミリ秒進んでいます";} //SEV_T_plusminusがプラスのときはローカルPC時間がサーバ時間に対して遅れているときです。
else if (SEV_T_plusminus == 0){jikansa_mojiretu = "0ミリ秒進んでいます(時間差無し)";}
else {jikansa_mojiretu ="現在情報取得中です...";}
document.hoge.local_pc_time.value = clock1; // ローカルPC時間
document.hoge.server_time.value = clock2; // サーバ時間
document.hoge.jikansa.value = SEV_T_plusminus + "ミリ秒"; //サーバとの時間差
document.hoge.jikansa2.value = jikansa_mojiretu; //サーバとの時間差
document.hoge.local_pc_time_toumeibox.value = clock1; // ローカルPC時間
document.hoge.server_time_toumeibox.value = clock2; // サーバ時間
document.hoge.jikansa_toumeibox.value = SEV_T_plusminus + "ミリ秒"; //サーバとの時間差
document.hoge.jikansa2_toumeibox.value = jikansa_mojiretu; //サーバとの時間差
setTimeout("Clock()", 200);
}
// --></SCRIPT>
<FORM NAME="hoge">
テキストボックスに表示するとこんな感じです。 <BR><BR>
<INPUT TYPE="text" NAME="local_pc_time" SIZE="40" READONLY> ローカルPC時間<BR>
<INPUT TYPE="text" NAME="server_time" SIZE="40" READONLY> サーバ時間<BR>
<INPUT TYPE="text" NAME="jikansa" SIZE="40" READONLY> サーバとの時間差<BR>
お使いのコンピュータはWebサーバの時間より<INPUT TYPE="text" NAME="jikansa2" SIZE="40" READONLY><BR>
<BR>
テキストボックス内に表示させたくない人は、以下のようにテキストボックスを透明化すると、<BR>
如何にも、時計の文字だけが表示されているように見えます。<BR><BR>
ローカルPC時間: <INPUT TYPE="text" NAME="local_pc_time_toumeibox" SIZE="40" STYLE="background-color:transparent;border:none;" READONLY><BR>
サーバ時間: <INPUT TYPE="text" NAME="server_time_toumeibox" SIZE="40" STYLE="background-color:transparent;border:none;" READONLY><BR>
サーバとの時間差: <INPUT TYPE="text" NAME="jikansa_toumeibox" SIZE="40" STYLE="background-color:transparent;border:none;" READONLY><BR>
お使いのコンピュータはWebサーバの時間より<INPUT TYPE="text" NAME="jikansa2_toumeibox" SIZE="40" STYLE="background-color:transparent;border:none;" READONLY><BR>
</FORM>
</BODY>
</HTML>
============================ HTML ここまで ==================================
このスクリプトはjavascriptを普段ほとんどjavascriptを触らない、
かつ、真面目にjavascriptを勉強したことがない人間ことhogemonia_mk2が
ノリと気分と成り行きで、実にテキトーに(「適当」ではない)、
こんな感じで動くんじゃない?うん、多分。とかなんとか言いつつリファレンス片手に
20分で書いたものです。
また、本スクリプトを使用して起きた不具合や問題について、
hogemonia_mk2は一切責任を負いませんので、ご注意ください。
なお、このスクリプトはhogemonia_mk2作、これまた、いい加減に5分チョイで、
実に貧弱な持ち合わせのphpの知識で作られた"get_server_time.php"の使用を
前提として書いています。
このスクリプトは修正BSDライセンスです。なので改変・再配布はご自由にどうぞ。
ただし、著作権表記&アドレスは消さないようお願いしますね。
事後報告でもいいので、ご一報いただけたら嬉しいです。
質問等ありましたら、http://blog.mct-lab.com/rnote.php?u=contact/contact.htm
のコンタクトフォームからご連絡ください。
また、このjsファイルを作る際に以下のサイトにお世話になりました。
この場を借りてお礼申し上げます。ありがとうございました。
Ajaxを勉強しよう : http://www.openspc2.org/JavaScript/Ajax/Ajax_study/
~説明ここまで~