プロが教える店舗&オフィスのセキュリティ対策術

いろいろ調べて、プログラムしてみたのですがどうしてもうまくいかずに悩んでいます。

ブラウザ上から指定の時間を入力し、現在の時間までの経過時間をリアルタイムで表示することできますか?

数値を取得し、リアルタイムで変更するということが出来ずに困っています。

A 回答 (2件)

こんな感じ、基準の時間を変更したら、フォーカスを移動(テキストボックス以外の部分をクリック)すると再計算します。


-------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>経過時間</title>
<script type="text/javascript">
<!--
var originDate; //指定日
var day=24*60*60;//1日の秒
var hour=60*60; //1時間の秒

setInterval('displayDate()',1000);//一秒毎に実行する

function setOriginDate(){
var inpStrings = FORM.inpTime.value.split(" ");
var DateStr = inpStrings[0].split("/");
var TimeStr = inpStrings[1].split(":");
originDate = new Date(
parseInt(DateStr[0]), //年
parseInt(DateStr[1]-1),//月、月は-1することに注意
parseInt(DateStr[2]), //日
parseInt(TimeStr[0]), //時
parseInt(TimeStr[1]), //分
parseInt(TimeStr[2])); //秒
}
function displayDate(){
var nowDate = new Date();
var diff, d,h,m,s;

diff = nowDate.getTime() - originDate.getTime();
diff =Math.round(diff / 1000);//ミリ秒から秒に直す
d = Math.floor(diff / day);
diff = diff - d * day;
h = Math.floor(diff / hour);
diff = diff - h * hour;
m = Math.floor(diff / 60);
s = diff - m * 60;
FORM.outTime.value=d+"日"+h+"時間"+m+"分"+s+"秒経過";
}
// -->
</script>

</head>
<body onload="setOriginDate()">
<form name="FORM"><br>
基準時間<input name="inpTime" type="text" value="2004/4/1 8:16:40" size="27" onchange="setOriginDate()"><br>
<input name="outTime" type="text" value="" size="40" READONLY>
</form>
</body>
</html>
    • good
    • 0

setTimeoutを使うと出来ると思います。



setTimeout("setKeika()",0);
function setKeika()
{
  /*
  経過時間を計算して出力
  */
  
  //1000ms後にsetKeika()を呼び出す
  setTimeout("setKeika()",1000);
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!