只今、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>
No.2ベストアンサー
- 回答日時:
#1です。
>とても参考になりました。
とありましたが、あれは、とてもさんこうにならないとおもうので、さいど。
ぜんかくくうはくは、はんかくにでも。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>CountDown</title>
<body>
<form action="#">
<p>
<input type="text" value="" id="fuga">
<input type="button" value="+10m" onclick="extensionTime(10)">
</p>
</form>
<script type="text/Javascript"><!--
var time;
var base = [ 100000, 24, 60, 60, 1000 ];
var unit = [ '日', '時', '分', '秒', '' ];
var e = document.getElementById( 'fuga' );
var d = ( new Date( 2010, 4 - 1, 20, 0, 0, 0, 0 ) ).getTime( );
//____
function convert( serial ) {
return (function ( n, c ) {
var u = unit[ c ];
var b = base[ c ] || 1;
var r = Math.floor( n / b );
var s = '';
if( !!u )
s = ('000000000' + ( n - r * b )).slice( -( b + '').length ) + u;
if( 0 < c )
return arguments.callee( r, c - 1 ) + s;
else
return n + u;
})( serial, 4 );
}
//____
function disp( ) {
time = d - ( new Date ).getTime( );
if( 0 < time ) {
e.value = convert( time );
return true;
} else {
return false;
}
}
function extensionTime ( minute /* Minute */ ) {
if( 'number' === typeof minute ) {
d += minute * 60 * 1000;
disp( );
}
}
function demo ( ) {
if( disp( ) )
setTimeout( arguments.callee, 1000 );
else
e.value = '終了';
}
//__
demo();
//-->
</script>
No.1
- 回答日時:
みじかくてよいのなら。
//こういうかいとうが、はんかんかうんだろうなぁ~<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title></title>
<body>
<form action="#">
<p>
<input type="text" value="" id="fuga">
<input type="button" value="+10m" onclick="addM(10)">
</p>
</form>
<script type="text/Javascript">
var a;
function hoge(e,y,m,d,j,f,b,ms){
a=(new Date(y,m-1,d,j||0,f||0,b||0,ms||0))-0;
(function c(){
var b=(a-(new Date))/1000|0;
if(b>0){
e.value = fuga(b,4).replace(/(\d+)(\d{2})(\d{2})(\d{2})$/,'$1日$2時$3分$4秒');
setTimeout(c,1000);
}else e.value = 'end';
})();
}
function fuga(n,t){
if(!t)return '';var w=[0,10000,24,60,60][t--],r=n/w|0,s=n%w;
return fuga(r,t)+(s<10?'0'+s:s);
}
function addM(m){a+=m*60000}
hoge( document.getElementById('fuga'), 2010, 4, 20, 0, 0, 0, 0);
</script>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムについて。
-
スマホ上で、左右スワイプで次...
-
初心者です。gulpでコンパイル...
-
プログラムがうまく動きません...
-
jsで質問です。 displayプロパ...
-
【Google Apps Script】「ライ...
-
console.logがどうしても2つ機...
-
指定時間になったら、WEBサイト...
-
Googleフォームで選択肢に応じ...
-
セレクトを全て選択されていな...
-
イラストレーター、縦中横のシ...
-
sessionStorageを調べています。
-
コードレビューをお願いします。
-
セレクトボックスで配列を呼び...
-
jsで、配列内の文章を改行する...
-
jQueryで同じクラス名のものを...
-
HTMLタグに複数のクラスを設定...
-
コードレビューをお願いします。
-
IndexedDB を使ってファイルア...
-
画面遷移を行わずに同一ページ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
var exports = exports || {}; ...
-
HTMLタグに複数のクラスを設定...
-
jsで質問です。 displayプロパ...
-
画面遷移を行わずに同一ページ...
-
Googleフォームで選択肢に応じ...
-
特定の文字列を複数抜き出した...
-
フロントエンドフレームワーク...
-
変数名をどのようにつけるのが...
-
【JS】selectでchangeした時の...
-
React hooksが値を返して配列変...
-
オブジェクトから任意のプロパ...
-
指定時間になったら、WEBサイト...
-
Colorboxがうまく設置できません
-
二次元配列の中の各行の要素を...
-
読み込んだQRコードをフォーム...
-
IndexedDB を使ってファイルア...
-
HTMLで作った時報アプリが動き...
-
GASに文字列として関数を入れる...
-
GASでGoogleフォームの自動返信...
-
①入力フォーム→②確認表示画面→③...
おすすめ情報