![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
CGIゲーム内であるイベントが発生してから12時間後に新イベントが自動発生するスクリプトを作りたいのですが
ネット検索をしても残り日数表示しかなくてサンプルがないので創ってみたのですが
<body onLoad="count()" onUnload="clearTimeout()">
$ENV{'TZ'} = "JST-9";
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); <=現在の時間
$date="0,0,11,3,0,107,0,27,0 485,197,854,"; <=保存されたプレイベント発生時間
foreach($date){ ($sc,$mi,$ho,$md,$mo,$ye,$wd,$yd,$isd)=split(/,/); }
print <<"EOM";
<SCRIPT language="JavaScript">
<!--
cnt = $sc-$sec;
cnt1=$mi-$min;
if($ho>$hour){cnt2=$ho-$hour-12;}
else{cnt2=$ho-$hour+12;}
if(cnt2>12){cnt2=cnt2-12;}
if(cnt<0){cnt=cnt+59; cnt1=cnt1-1;}
if(cnt1<0){cnt1=cnt1+59; cnt2=cnt2-1;}
if(cnt2<0){cnt=0;cnt1=0;cnt2=0;}
function count(){
document.form.box.value = cnt2+"時間"+cnt1+"分"+cnt+"秒";
cnt--;
if(cnt<0){cnt=cnt+60; cnt1=cnt1-1;}
if(cnt1<0){cnt1=cnt1+60; cnt2=cnt2-1;}
if(cnt2<0){cnt=0;cnt1=0;cnt2=0;}
if(cnt2 >=0) {
if(cnt1 >=0) {
if(cnt >=0) {
setTimeout("count()",1000);
}}}
}
//-->
</SCRIPT>
<FORM name="form">
あと<INPUT type="text" name="box" size="17">です
</FORM>
EOM
とりあえず表示はできた(と思う)のですがもっと楽で確実な方法はありますでしょうか?(モジュールとかは使わずに)
または上記のスクリプトすぐに思いつかなかったのでtime()で計算してたのですが
『残り53495秒』(適当)のような表記方法しか分かりません
これを○時間△分□秒のように変換してカウントダウンできるでしょうか?
localtime()、time()どちらでもいいのでご意見お願いします
No.2ベストアンサー
- 回答日時:
こんにちは。
さてご質問にあった
----------------
『残り53495秒』
----------------
ですが、もし残り時間を「秒」で求める方法がおわかりになるのであれば、これ自体を「時・分・秒」に直してしまって表示したほうがシンプルになるのではないかな?と思いました。
残り「時間」 = (残り秒数÷3600)の整数部分
残り「 分 」 = ((残り秒数-(残り「時間」× 3600))÷ 60))の整数部分
残り「 秒 」 = 残り秒数-(残り「時間」× 3600)-(残り「 分 」× 60)
で変換できることと思います。ご検討を。
御礼が遅くなってすみません
上記の計算方法試したところ、うまく表示することができました
とりあえずこれでやってJavascriptでの計算方法も勉強していきたいと思います
お世話になりました
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_10.png?8acaa2e)
No.1
- 回答日時:
検索したら
参考になるページがウジャウジャ出て来ますが。
イヌでもわかるJavaScript講座
「来年をカウントダウンする」
http://www.red.oit-net.jp/tatsuya/java/countdwn2 …
JavaScript訓練所
カウントダウン
http://www004.upp.so-net.ne.jp/sekiuchi/js/conte …
[CJ-Club]-[JavaScript]-カウントダウン
http://www.cj-c.com/java_s/java15.htm
カウントダウン (3)
http://www2s.biglobe.ne.jp/~Hiro/js/CountDown03. …
検索キーワード「カウントダウン JavaScript 秒」
回答ありがとうございます
800字を超えてた為すべての説明をすることができていませんでしたm(--)m
ご提示してもらったサイトはすべて見たことがありました(><)
new Date(2112,8,3)
のようにあらかじめ指定日設定されてますよね
これを自動で修正することはできるでしょうか?
ユーザーの行動によってこの指定日が違うので・・・
行動をしてるとある確率でプレイベントが発生
その時間をファイルに保存
ファイルからそのデータを取得
その時間から12時間後までのカウントダウンを表示
カウントが0になったら新イベント発生
という流れなのですが・・・
よろしければnew Date(○,△,□)の操作の仕方が分かれば教えてください
勉強を始めたばかりなのでよろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) Dateserialで データ抽出 2 2022/06/26 21:07
- Visual Basic(VBA) vbaで色付けされたセルを除外したいのですが 5 2023/01/28 17:22
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) 日付の計算方法 2 2022/07/01 23:35
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- Visual Basic(VBA) エクセルVBAコピー 2 2022/06/08 21:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスに文字飾り表...
-
大文字か小文字かを判断する方法
-
ボタン無しでフォーム内容送信
-
テーブルで複数行をまとめて非...
-
ひ孫に当たるiframe から親ウイ...
-
C言語クイックソートの比較総回...
-
onchangeイベントを強制的に発...
-
EXCEL VBA:IEの操作であるラジ...
-
テキストボックスのグレーアウト
-
fileUploadオブジェクトへの値...
-
クイズ作成:15個の問題から5個...
-
Javascript IEで「識別子があり...
-
イベント発生時に入力待ち状態...
-
テキストエリアをクリックした...
-
名前と名字をそれぞれ比較して...
-
VBSでブラウザ上のテキストボッ...
-
メールフォーム:「必須項目」...
-
フォームのメニューリストを外...
-
複数のプルダウンメニューの組...
-
slickのレスポンシブ > center...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TextBoxに半角数字以外を入れた...
-
ページ間で変数を保持したい
-
HTMLファイル同士での値渡し
-
tabindexの取得
-
プルダウンで選択された値を別...
-
フォームの内容でリンク先URLの...
-
マイナスなら赤字で表示したい...
-
テキストエリアに履歴を残したい
-
テキストボックスに入力した色...
-
どちらかひとつのテキストボッ...
-
HTMLとJavaScriptで作った表示...
-
イベント発生順序
-
GetElementByIdがうまく取得で...
-
VBSからjavascript
-
VBscriptの配列変数をJavascrip...
-
VBScriptでpingを実行(ブラウザ...
-
JSPでonChangeを強制発行するに...
-
大文字か小文字かを判断する方法
-
javascriptのちょっとした動作...
-
テキストボックスのフォーカス移動
おすすめ情報