カウントダウンJSにタイマーは付けられますか?

このQ&Aのポイント
  • カウントダウンプログラムを使用しているのですが、毎日0時になったらカウントダウンがスタートするように改造したく思います。
  • カウントダウンが始まる前は非表示にしておきたいです。
  • 使っているソースは以下です。お詳しい方、教えていただけませんでしょうか。
回答を見る
  • ベストアンサー

カウントダウンJSにタイマーは付けられますか?

カウントダウンプログラムを使用しているのですが、 毎日0時になったらカウントダウンがスタートするように改造したく思います。 (カウントダウンが始まる前は非表示にしておきたいです。) 使っているソースは以下です。 お詳しい方、教えていただけませんでしょうか。 よろしくお願いいたします! ----------------------------------- <!-- カウントダウン --><DIV id="myCwww"></DIV> <SCRIPT language="JavaScript"><!-- function myCountd(){ myHyouji = 1; //0で秒数、1で日数含む形式 mySetname = "セール終了"; //目標時間の名称 mySetyear = 2011; //目標年 mySetmon = 3; //目標月 mySetday = 6; //目標日 mySethour = 23; //目標時 mySetmin = 59; //目標分 mySetsec = 59; //目標秒 myTime = new Date(); mySettime = new Date(mySetyear,mySetmon - 1,mySetday,mySethour,mySetmin,mySetsec); myTimeth = (Math.floor( ( myTime.getTime() - mySettime.getTime() ) / 1000) ) * -1; if(myTimeth > -1){ myChunts = 0; } else { myChunts = 1; myTimeth = myTimeth * -1; } if(myHyouji == 1){ var myWarid = 0; var myWarih = 0; var myWarim = 0; if(myTimeth > 86399){ myWarid = myTimeth / 86400; myWarid = Math.floor(myWarid); myTimeth = myTimeth - (86400 * myWarid); } if(myTimeth > 3599){ myWarih = myTimeth / 3600; myWarih = Math.floor(myWarih); myTimeth = myTimeth - (3600 * myWarih); } if(myTimeth > 59){ myWarim = myTimeth / 60; myWarim = Math.floor(myWarim); myTimeth = myTimeth - (60 * myWarim); } myTimeth = myWarid + "日と" + myWarih + "時間" + myWarim + "分" + myTimeth; } if(myChunts == 0){ document.getElementById("myCwww").innerHTML = mySetname + "まで、あと" + myTimeth + "秒です"; } else { document.getElementById("myCwww").innerHTML = "セール終了いたしました。"; } } setInterval("myCountd()", 1000); // --></SCRIPT><!-- カウントダウン -->

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.6

#4、#5です。 >必要となる実行用のタグをお教え願えますでしょうか #5に記した通りですので、実行用(?)のタグ(?)は必要ありません。 ほとんどご質問文のものと同型なので、説明もいらないかと思ったのですが… (divのidの「myCwww」ってのだけはわからない名前なので変えてますけど) #4で書いたように、そもそもが、想像だらけの当たるも八卦のものなので、ご質問の回答になっているのかどうかも怪しいです。 以下、テストしたソース。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>sample</title> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <div id="countdown"></div> <script type="text/javascript"> <!-- (function(){ var base = "2011/01/01"; //表示/非表示の基準日 var comment = "定型文"; //非表示時の定型文 var id = "countdown"; //表示用要素のid var element = document.getElementById(id); var divide = function(r, n){ var tmp = r.count/n | 0; var v = r.count - tmp * n; r.count = tmp; r.time.unshift( (v<10?"0":"") + v); } var timer = function(){ var today = new Date(); var n_day = new Date(today.getFullYear(), today.getMonth(), today.getDate()+1); var def = (today - new Date(base))/24/60/60/1000 | 0; var remain = { time:[], count:(n_day-today)/1000 | 0 }; if(def % 2){ element.innerHTML = comment; def = remain.count - 30; if(1>def) def = 1; setTimeout(timer, def * 1000); } else { divide(remain, 60); divide(remain, 60); divide(remain, 24); element.innerHTML = remain.time.join(":"); setTimeout(timer, 500); } } timer(); })(); //--> </script> </body> </html>

ichigo-tounyu
質問者

お礼

地震などあり、せっかくいただいた回答へのお返事が おくれてしまってたいへん失礼いたしました! 毎回とても助かっています、本当にありがとうございました。

その他の回答 (5)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.5

#4です。 > 教えていただいたものをそのまま貼り付けると >何も出てこなかったのですが >他にも記述する必要はありますでしょうか。 どのような貼り付け方をなさったのかわかりませんが、回答に提示したのはスクリプト部分だけです。 最低限のHTML構成と、表示対象の要素(およびそのidとスクリプト内のidを一致させておく)が必要です。 あたりまえですが、スクリプトは<script>タグの中に。 実行は、表示用の要素が読み込まれてから行なうようにしてください。 (そうでないと、表示するための要素が無いためエラーになります) 日付の変わり目などの全体の検証は行なっていませんが、基本的な動作の確認はfx、IEで行なっています。

ichigo-tounyu
質問者

お礼

ご回答ありがとうございます!!! HTMLとCSSしかわからないもので・・・ 記述する場所、最低限のHTML構成はOKです。 必要となる実行用のタグをお教え願えますでしょうか。 たびたびの質問で申し訳ございません・・・

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

質問の内容がさっぱり把握できてませんけれど、 >1日おきに0:00~23:59のカウントダウンを行い、  「一日おき」というのは隔日ということと解釈。表示する日と、表示しない日が交互にあるということ。  カウントダウンは、時刻が0:0:01だったら「23:59:59」で、段々減少し23:59:59に0:0:01を表示して、24:0:0(0:0:0)に終了すると解釈。  要は、固定時刻(午前0時)へ向けてのカウントダウンと解釈。(固定日の時刻へのカウントダウンではない) >カウントダウン終了後、また、翌日はカウントダウン開始前に >指定の定型文を表示させたく思います  時間を表示していないときは、常に「指定文」が表示されていればよいと解釈。  (カウントダウン終了時も同じ。指定文が表示される) ・・・と勝手に解釈すると、最初の質問文やご提示のスクリプトとはだいぶ違うような気もしますが 当たるも八卦で、こんなかんじ?(未検証) (全角空白は半角に) (function(){ var base = "2011/01/01"; //表示/非表示の基準日 var comment = "定型文"; //非表示時の定型文 var id = "countdown"; //表示用要素のid var element = document.getElementById(id); var divide = function(r, n){  var tmp = r.count/n | 0;  var v = r.count - tmp * n;  r.count = tmp;  r.time.unshift( (v<10?"0":"") + v); } var timer = function(){  var today = new Date();  var n_day = new Date(today.getFullYear(), today.getMonth(), today.getDate()+1);  var def = (today - new Date(base))/24/60/60/1000 | 0;  var remain = { time:[], count:(n_day-today)/1000 | 0 };  if(def % 2){   element.innerHTML = comment;   def = remain.count - 30;   if(1>def) def = 1;   setTimeout(timer, def * 1000);  } else {   divide(remain, 60);   divide(remain, 60);   divide(remain, 24);   element.innerHTML = remain.time.join(":");   setTimeout(timer, 500);  } } timer(); })();

ichigo-tounyu
質問者

お礼

fujillinさん、今回もご回答いただき本当にありがとうございます!!! 説明がうまくできずにすみません・・ 教えていただいたものをさっそく試してみます!

ichigo-tounyu
質問者

補足

補足 教えていただいたものをそのまま貼り付けると 何も出てこなかったのですが 他にも記述する必要はありますでしょうか。 たいへんお手数ですが教えていただけますでしょうか。 よろしくお願いいたします!

回答No.3

"もう一つタイマー"を作って現在時刻を確認し、0時になれば setInterval("myCountd()", 1000); を実行、"もう一つタイマー"を停止する。 というのでどうでしょうか。

ichigo-tounyu
質問者

お礼

talooさん、ご回答ありがとうございます!!! 勉強不足で申し訳ないのですが、 ソースコード教えていただけますでしょうか。 今回のプログラムもサンプルを少し変更しただけで Javascriptの知識がありません。 たいへんお手数ですが、タイマーが可能でしたらやり方をお教え願います。 すみませんが、よろしくお願いいたします!

ichigo-tounyu
質問者

補足

教えていただいたものをそのまま貼り付けると 何も出てこなかったのですが 他にも記述する必要はありますでしょうか。 たいへんお手数ですが教えていただけますでしょうか。 よろしくお願いいたします!

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

私が、ご質問の意味を正しく解釈してないのかも知れませんが あなたの意図してる事をクライアントサイトのJavascriptのタイマー?を使って実現する事は不可能です。サーバー側のプログラムを作る必要があります。Javascriptのタイマーはそのjavascriptが動いているページを閉じると消滅するからです。 もちろん、ページが表示された時に現在日時と現在時間を取得して、その時点からのオフセットでカウントダウン開始時刻と修了時刻を何らかの規則や、予め用意しておいたデータで決めて、カウントダウン開始時刻前なら定型メッセージ、開始時刻を過ぎているならカウントダウンを開始させるのは出来ます。でもそれは、タイマーの処理じゃ無いです。

ichigo-tounyu
質問者

お礼

ご回答ありがとうございます! 1日おきに0:00~23:59のカウントダウンを行い、 カウントダウン終了後、 また、翌日はカウントダウン開始前に 指定の定型文を表示させたく思います。 これはjavascriptでは不可能でしょうか。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

>毎日0時になったらカウントダウンがスタートする 毎日0時に、目標年月日日時をその日の23:59:59 にするって事ですか? だとすると、 >カウントダウンが始まる前は非表示にしておきたい に矛盾するような、前日までは非表示???

ichigo-tounyu
質問者

お礼

yyr446様、ご返答ありがとうございます。 失礼しました・・・そうですね。 毎日0時にカウントダウンが開始になるまで、また、終わったあとは 指定した定型文が表示されるようにしたく思います。 時間をタイマー指定することは可能でしょうか。

関連するQ&A

  • カウントダウンタイマー 終了後別ページジャンプ

    はじめてで 勉強中でカウントダウンタイマーをJavaScriptだけで作ってみました。 <script> window.onload=function countDown(){ setInterval(function countDown(){ //自分で記述する y = 2022;//年 m = 2;//月 d = 13;//日 xday = new Date(y,m-1,d,00,00,00); today = new Date(); setTime = xday.getTime() - today.getTime(); //ミリ秒を日時に変換 days = Math.floor(setTime / 86400000); jikan = Math.floor((setTime % 86400000) / 3600000); hunn = Math.floor(((setTime % 86400000) / 60000) % 60); byou = Math.floor(((setTime % 86400000) / 1000) % 60 % 60); miri = Math.floor((setTime % 86400000) % 60 % 60 % 100); //0-9には0を付け足す if(jikan<10){jikan = '0' + jikan;} if(hunn<10){hunn = '0' + hunn;} if(byou<10){byou = '0' + byou;} if(miri<10){miri = '0' + miri;} //出力 if(xday > today){ var str = "残りあと"+"<span>"+days+"</span>"+"日"+"と"+"<span>"+jikan+"</span>"+":"+"<span>"+hunn+"</span>"+":"+"<span>"+byou+"</span>"+":"+"<span>"+miri+"</span>"+"<br />"; document.getElementById("countDown").innerHTML=str; }else{ var str = "販売は終了致しました"; document.getElementById("countDown").innerHTML=str; window.location.href = 'https://www.yahoo.co.jp/'; } },10); } </script> カウント終了後には別ページに5秒後にジャンプさせたいです。 上記のコードをWPに実装してページを開いてみると、 カウントダウンは動きます。 ただ、終了後に別ページにジャンプしません。 カウント終了後、何回もリロードされて、やっとページがジャンプしたと思ったら「サーバーエラー」となり画面が真っ白になります。 window.location.href = 'https://www.yahoo.co.jp/'; ここの書き方が間違っている・・と思うのですが、どうすれば正常に動くのかがわかりません。 アドバイスをお願いできないでしょうか。 よろしくお願いいたします。

  • タイマーをデジタル時計風にするには

    ※数日前にも「教えて!goo」の同じカテゴリーで質問した者です。 ※結局自分が書いたコードを使ってるんですが... <html> <head> <title>test</title> <script type="text/javascript"> <!-- function doCountDown() { setInterval('countDown()', 500); } function countDown() { var now = new Date(); var tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1); var diff = Math.floor((tomorrow.getTime() - now.getTime()) / 1000) + 1; var hour = Math.floor(diff / 3600); diff %= 3600; var min = Math.floor(diff / 60); var sec = diff % 60; document.getElementById('cd').innerHTML= "今日の終わりまであと" + hour + "時間" + min + "分" + sec + "秒"; } //--> </script> </head> <body onload="javacript:doCountDown();"> <div id='cd'></div> </body> </htm> ※カウントダウンタイマーをデジタル時計風にするには、どうすればいいのでしょうか? (つい最近、「デジタル時計」をアメリカのサイトのサンプルを模倣しながら作ったことならあります。) デジタル数字のイメージ「0~9」と「:」はもう準備来ました。 ”0”をdg0.gif、”1”をdg1.gif~~~~~”9”をdg9.gifとし、”:”をdga.gifとします。 これらのイメージを入れつつ、上のコードに沿って動かしたいです。 ちなみに、自分が作ったデジタル時計は以下のやつです。

  • カウントダウンタイマー

    カウントダウンタイマーをJavascriptでもって設置したのですが表示される度に定時からスタートする場合はどうやればよいのでしょうか?つまり仮に4月1日を締め切りにしてそれをすぎたら終了ではなく、常に後3日までや5日までのカウントダウンをしたいのです。言葉足らずな初心者で申し訳ないのですがよろしくお願い致します。以下現在使用のscriptです。 <SCRIPT language=JavaScript> <!-- millenium = new Date(2007,3,31,23,59,00) function display() { today = new Date() myMsec= millenium.getTime()-today.getTime(); time0 = Math.floor(myMsec/(1000*60*60*24));// カウントダウン用'日' 取得 myMsec -= (time0*(1000*60*60*24)); // 経過秒から'時'を引く time1 = Math.floor(myMsec/(1000*60*60));// カウントダウン用 '時' 取得 myMsec -= (time1*(1000*60*60)); // 経過秒から'時'を引く time2 = Math.floor(myMsec/(1000*60)); // カウントダウン用 '分' 取得 myMsec -= (time2*(1000*60));// 経過秒から'分'を引く time3 = Math.floor(myMsec/1000);// カウントダウン用 '秒' 取得 myMsec -= (time3*(1000)); // 経過秒から'秒'を引く time4 = Math.floor(myMsec/10);// カウントダウン用 '少数秒' 取得 for(i=0;i<2;i++){ time2 = '' + '0' + time2; } for(i=0;i<2;i++){ time3 = '' + '0' + time3; } for(i=0;i<2;i++){ time4 = '' + '0' + time4; } time2 = time2.substring(time2.length - 2,time2.length); time3 = time3.substring(time3.length - 2,time3.length); time4 = time4.substring(time4.length - 2,time4.length); time0 = time0 - 31; if((millenium - today) > 0){ document.f.days.value = "締め切りまで"+time0+"日と"+time1+":"+time2+":"+time3+"."+time4+"です" }else{ document.f.days.value = "受け付けは終了しました" } tid = setTimeout('display()', 10) } display() // --> </SCRIPT>

  • このスクリプトの間違いを指摘してください。

    このスクリプトの間違いを指摘してください。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>test</title> <script type="text/javascript"> <!-- function doCountDown() { setInterval('countDown()', 500); } function countDown() { var now = new Date(); var tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1); var diff = Math.floor((tomorrow.getTime() - now.getTime()) / 1000) + 1; var hour = Math.floor(diff / 3600); diff %= 3600; var min = Math.floor(diff / 60); var sec = diff % 60; document.getElementById('cd').innerHTML= "明日まで、あと" + hour + "時間" + min + "分" + sec + "秒"; } //--> </script> </head> <body onload="javacript:doCountDown();"> <div id='cd'></div> </body> </html> 自動更新のカウントダウンタイマーを作ろうと思ってるのですが....

  • javaスクリプトについて質問です。カウントダウンタイマーなのですが、

    javaスクリプトについて質問です。カウントダウンタイマーなのですが、下記コードを入力したのですが、ホームページ上ではうまく作動しません。どこを訂正したらよろしいのでしょうか? わかる方教えて下さい。 <!--カウントダウンタイマーここから--> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="cookie.js"></script> <script type="text/javascript" src="check.js"></script> <script type="text/javascript"> <!-- start of JavaScript // 有効期限を取得 var timeLimit = getTimeLimit( 1259629393, 'http://', 192 ); // 初回アクセス日を取得 var firstTime = '<div>初回アクセス:' + getFirstTimeAccess() + '</div>'; // 残り時間を表示 $( function() { displayCountDown(); } ); function displayCountDown() { var timer; var today = new Date() var days = Math.floor( ( timeLimit - today ) / ( 24 * 60 * 60 * 1000 ) ); var hours = Math.floor( ( ( timeLimit - today ) % ( 24 * 60 * 60 * 1000 ) ) / ( 60 * 60 * 1000 ) ); var mins = Math.floor( ( ( timeLimit - today ) % ( 24 * 60 * 60 * 1000 ) ) / ( 60 * 1000 ) ) % 60; var secs = Math.floor( ( ( timeLimit - today ) % ( 24 * 60 * 60 * 1000 ) ) / 1000 ) % 60 % 60; var milis = Math.floor( ( ( timeLimit - today ) % ( 24 * 60 * 60 * 1000 ) ) / 10 ) % 100; if(( timeLimit - today ) > 0){ timer = '<div>残り ' + days + '日 ' + addZero( hours ) + '時間 ' + addZero( mins ) + '分 '+ addZero( secs ) + '秒 ' + addZero( milis ) + 'です。</div>' $( '.countdown' ).html( firstTime + timer ); tid = setTimeout( 'displayCountDown()', 10 ); }else{ location.href='http://'; return; } } // end of JavaScript --> </script>

  • カウントダウンのタグ

    おバカな質問でごめんなさいです(T_T) 笑わないでね?! 呆れないでね?! カウントダウンのカウンター(?)を置きたくて いろんなサイトを見て作ろうと思ったのですが これじゃ~表示されなくて… 何が足りないですか? ()の中ってどうするのですか? たぶん… メチャクチャだと思うのでここに質問すること事態 恥ずかしくて迷いましたが宜しくお願いします。 m( _"_ )mペコ♪ <!-- var set_y = 2005; var set_m = 9; var set_d = 5; var now = new Date(); var spday= new Date(set_y,set_m-1,set_d); a = (spday.getTime() - now.getTime())/(24*60*60*1000); a= Math.ceil(a); if(a >0) document.write("あと",a,"日で○○○です。"); else if(a==0) document.write("<h2>○○○開催!!</h2>"); else if(a <0) document.write("○○○",-a,"日過ぎました・・・"); --> <script language="javascript"> <!-- //--> </script>

    • ベストアンサー
    • HTML
  • JavaScriptで平日のみをカウントダウンするには?

    以下のプログラムは土日は無視されますが祝日も平日としてカウントダウンされてしまいます。 土、日、祝日を含まない平日のみをカウントダウンするプログラムを教えていただけますでしょうか? <html> <head> <script language="JavaScript"> <!-- function countdown() { var kyou = new Date(); var kinen = new Date("Sep 31, 2008 00:00:00"); // 目標日との差のミリ秒(の絶対値) var tdiff = Math.abs(kinen.getTime() - kyou.getTime()); // 日数 var days = 0; var mae; if (kinen.getTime() > kyou.getTime()) { // 目標日以前なら mae = true; // 曜日を取得(日曜が0、月曜が1、...、土曜が6) var weekday = kyou.getDay(); while (tdiff > 0) { if (weekday > 0 && weekday < 6) { ++days; } weekday = weekday != 6 ? weekday + 1 : 0; tdiff -= (24 * 60 * 60 * 1000); } } else { // 目標日以降(含む当日)なら mae = false; // 曜日を取得(日曜が0、月曜が1、...、土曜が6) var weekday = kinen.getDay(); // 残りが1日未満になるまで繰り返す // 元のプログラムがMath.ceilで切り上げを行っているため、 // それにあわせるための処置 while (tdiff > (24 * 60 * 60 * 1000)) { if (weekday > 0 && weekday < 6) { ++days; } weekday = weekday != 6 ? weekday + 1 : 0; tdiff -= (24 * 60 * 60 * 1000); } } var meate="あ"; with(Math){ var kotoba; if (mae) { // 目標日前なら-1日する --days; kotoba = meate + "と " + days + "日 です。"; } else { if (days == 0) { kotoba = "も" + meate + "です!"; } else { kotoba = meate + "から" + days + "日が過ぎました。"; } } } document.write(kotoba); } //--> </script> </head> <body> <center><table border=2 bordercolor=00ffff cellpadding=5 cellspacing=0> <tr bgcolor="#ffffff"><td bgcolor="#ffff80"> <script language="JavaScript"> <!-- countdown(); //--> </script> </td></tr> </table></center> </body> </html> ご教授の方を宜しくお願いします。

  • javascript カウントダウンについて

    下記のようなjavascript でカウントダウンをしています。 ですが、指定日を過ぎると、00 表示になってしまいます。 これを指定日の指定時間を過ぎたら、-- という表示に変更し、 また、bodyないのタグにidを使って「指定日を過ぎました。」という 表示を出したいのですが、ご教授ねがいます。 <script language="javascript"> <!-- function countdown(year, month, day, hour, minute) { Today = new Date(); Todays_Year = Today.getFullYear() - 2000; Todays_Month = Today.getMonth() + 1; Todays_Day = Today.getDate(); Todays_Hour = Today.getHours(); Todays_Date = (new Date(Todays_Year, Todays_Month, Todays_Day, Todays_Hour, Today.getMinutes(), Today.getSeconds())).getTime(); Target_Date = (new Date(year, month, day, hour, minute, 00)).getTime(); Time_Left = Math.round((Target_Date - Todays_Date) / 1000); if(Time_Left < 0) Time_Left = 0; days = Math.floor(Time_Left / (60 * 60 * 24)); Time_Left %= (60 * 60 * 24); hours = Math.floor(Time_Left / (60 * 60)); Time_Left %= (60 * 60); minutes = Math.floor(Time_Left / 60); Time_Left %= 60; seconds = Time_Left; cDay = document.getElementById("counter_day"); cHour = document.getElementById("counter_hour"); cMin = document.getElementById("counter_min"); cSec = document.getElementById("counter_sec"); cDay.innerHTML = GetFormated(days); cHour.innerHTML = GetFormated(hours); cMin.innerHTML = GetFormated(minutes); cSec.innerHTML = GetFormated(seconds); //Recursive call, keeps the clock ticking. setTimeout('countdown(' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ');', 1000); } function GetFormated(i) { if(i<10) { return "0"+i; } return i; } //--> </script> </head> <body> <span id="counter_day"></span> <span id="counter_hour"></span> <span id="counter_min"></span> <span id="counter_sec"></span> <script language="JavaScript"> <!-- countdown('07,11,05,21,00'); //-->

  • javascriptによるカウントダウンタイマー制作

    只今、javascriptでカウントダウンタイマーを制作しています。 ボタンをクリックすると動いているカウントダウンタイマーに10秒追加するようにしたいのですが、いろいろためしてみたのですがうまくいきません。散々悩んでいるうちに2日もたってしまいました。 御存じの方、いらっしゃいましたらどうか教えていただけませんでしょうか? <script type="text/javascript"> <!-- if (window.attachEvent){ window.attachEvent('onload', showday); }else { window.addEventListener('load', showday , false); } function settime1(){ var year =2011; //年 var mon =4; //月 var day =2; //日 var time =20; //時 var min = 20; //分 var sec = 15; //秒 var xday = new Date(year,mon-1,day,time,min,sec); //基準になる年月日 return xday; } function showday() { var nowday = new Date(); var xday = new settime1(); var passtime= xday.getTime()-nowday.getTime(); //今から基準になる日までの経過時間 1/1000秒単位 var cnt_day = Math.floor(passtime/(1000*60*60*24)); // カウントダウン表示 (日にち) の取得 passtime = passtime -(cnt_day*(1000*60*60*24)); // 経過秒から(日にち)を引く var cnt_hour = Math.floor(passtime/(1000*60*60));// カウントダウン表示 (時) の取得 passtime = passtime -(cnt_hour*(1000*60*60)); // 経過秒から(時)を引く var cnt_min = Math.floor(passtime/(1000*60)); // カウントダウン表示 (分) 取得 passtime = passtime -(cnt_min*(1000*60));// 経過秒から(分)を引く cnt_sec = Math.floor(passtime/1000);// カウントダウン表示 (秒) 取得 passtime = passtime -(cnt_sec*(1000)); // 経過秒から(秒)を引く var cnt_millisec = Math.floor(passtime/10); // カウントダウン表示 (100/1秒) 取得 // 分、秒、ミリ秒を2桁で表示する。 if(cnt_min<10){cnt_min = '0' + cnt_min;} if(cnt_sec<10){cnt_sec = '0' + cnt_sec;} if(cnt_millisec<10){cnt_millisec = '0' + cnt_millisec;} if((xday - nowday) > 0){ document.tbox.dspday.value = cnt_hour+":"+cnt_min+":"+cnt_sec; }else { document.tbox.dspday.value = "終了" } timerID = setTimeout('showday()', 1000); } </script> </head> <body> <form name="tbox" action="#"> <input name="dspday" id="dspday" type="text" style="position:absolute; top:475px;left:55px; font-size : 25px; z-index:3; color:navy; background:transparent; border-width : 0px ;border-style : solid;font-weight :bold ;" size="45" /> <input name="dspdaybtn" type="button" onClick="" value="10秒追加" style="position:absolute; top:510px; left:70px; z-index:4;"/> </form>

  • javascriptカウントダウン終了後別ページへ

    javascriptでカウントダウン終了後に別ページに飛ばすリンクを表示したいのですが、どのようにすれば教えていただけますでしょうか? 下記スクリプトではカウントダウン終了時に「終了しました」と表示されます。 その「終了しました」にリンクを貼りたいです。 <script language="JavaScript" type="text/javascript"> function CountdownTimer(elm,tl,mes){ this.initialize.apply(this,arguments); } CountdownTimer.prototype={ initialize:function(elm,tl,mes) { this.elem = document.getElementById(elm); this.tl = tl; this.mes = mes; },countDown:function(){ var timer=''; var today=new Date(); var day=Math.floor((this.tl-today)/(24*60*60*1000)); var hour=Math.floor(((this.tl-today)%(24*60*60*1000))/(60*60*1000)); var min=Math.floor(((this.tl-today)%(24*60*60*1000))/(60*1000))%60; var sec=Math.floor(((this.tl-today)%(24*60*60*1000))/1000)%60%60; var milli=Math.floor(((this.tl-today)%(24*60*60*1000))/10)%100; var me=this; if( ( this.tl - today ) > 0 ){ if (day) timer += '<span class="day">'+day+':</span>'; if (hour) timer += '<span class="hour">'+hour+':</span>'; timer += '<span class="min">'+this.addZero(min)+':</span><span class="sec">'+this.addZero(sec)+':</span><span class="milli">'+this.addZero(milli)+'</span>'; this.elem.innerHTML = timer; tid = setTimeout( function(){me.countDown();},10 ); }else{ this.elem.innerHTML = this.mes; return; } },addZero:function(num){ return ('0'+num).slice(-2); } } function CDT(){ var tl = new Date('2013/2/1 00:00:00'); var timer = new CountdownTimer('CDT',tl,'終了しました'); timer.countDown(); } window.onload=function(){ CDT(); } </script>

専門家に質問してみよう