ふたつのカウントダウンタイマーを同一ページ内で表示させたい
特定の時間だけ販売する商品にカウントダウンタイマーをつけたいと考えています。
商品を販売開始するまでの時間をカウントするタイマーAと販売を開始してから終了するまでの時間をカウントするタイマーBを用意したいです。
同じコードを同一ページ内で記載したところタイマーAのカウントダウンが表示されませんでした。
どの部分を直せば二つのタイマーを同時に動かすことができるのか教えていただきたいです。
<html>
<head>
<meta charset="utf-8">
<title>カウントダウンタイマー</title>
<style>
body {
margin: 0;
padding: 0;
}
#inner {
/* width: 600px;*/
margin: 0;
}
#countdown {
font-family: arial;
font-weight: bold;
/* width: 600px;*/
/* color: #990000;*/
}
.day, .hou, .min, .sec, .mil {/*カウントする数字の大きさ*/
font-size: 48px;
}
.day {
}
.hou {
}
.min {
}
.sec {
}
.mil {
}
.moji {/*日とか時間とか秒とかの文字の色と大きさ*/
font-size: 36px;
color:#000000;}
#text {
font-family: arial;
font-weight: bold;
font-size: 36px;
}
.box1 {
padding: 0.5em 1em;
margin: 0.5em 0;
font-weight: bold;
border: solid 3px #000000;
width: 660px;
}
.box1 p {
margin: 0;
padding: 0;
}
#inner2 {
/* width: 600px;*/
margin: 0;
}
#countdown2 {
font-family: arial;
font-weight: bold;
/* width: 600px;*/
/* color: #990000;*/
}
#text2 {
font-family: arial;
font-weight: bold;
font-size: 36px;
}
</style>
<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 hou=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 mil=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><span class="moji">日</span>';
if (hou) timer += '<span class="hou">'+hou+'</span><span class="moji">時間</span>';
timer += '<span class="min">'+this.addZero(min)+'</span><span class="moji">分</span><span class="sec">'+this.addZero(sec)+'</span><span class="moji">秒</span><span class="mil">'+this.addZero(mil)+'</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 countdown(){
var tl = new Date('2019/12/14 20:00:00');
//この上の部分で終了時間を設定するYO!
var timer = new CountdownTimer('countdown',tl,'販売開始しました');
//この上の文は終了した後に表示する文字!
timer.countDown();
}
window.onload=function(){
countdown();
}
</script>
<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;
},countDown2:function(){
var timer='';
var today=new Date();
var day=Math.floor((this.tl-today)/(24*60*60*1000));
var hou=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 mil=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><span class="moji">日</span>';
if (hou) timer += '<span class="hou">'+hou+'</span><span class="moji">時間</span>';
timer += '<span class="min">'+this.addZero(min)+'</span><span class="moji">分</span><span class="sec">'+this.addZero(sec)+'</span><span class="moji">秒</span><span class="mil">'+this.addZero(mil)+'</span>';
this.elem.innerHTML = timer;
tid = setTimeout( function(){me.countDown2();},10 );
}else{
this.elem.innerHTML = this.mes;
return;
}
},addZero:function(num){ return ('0'+num).slice(-2); }
}
function countdown2(){
var tl = new Date('2019/12/24 20:00:00');
//この上の部分で終了時間を設定するYO!
var timer = new CountdownTimer('countdown2',tl,'販売開始しました');
//この上の文は終了した後に表示する文字!
timer.countDown2();
}
window.onload=function(){
countdown2();
}
</script>
<script type="text/javascript">
var startday =[];
var endday = [];
startday[1] = new Date('2019/11/1 20:00');
endday[1] = new Date('2019/12/14 19:59');
startday[2] = new Date('2019/11/4 20:00');
endday[2] = new Date('2019/12/24 23:59');
var today = new Date();
for(i=1;i<=11;i++){
if(startday[i] > today || today > endday[i] ){
$('#time'+i).remove();
}
}
</script>
</head>
<body>
<div id="time1" class="times">
<div class="box1">
<div id="inner">
<div id="text" style="float: left;">販売開始まで</div><div id="countdown" style="float: left;"></div>
<div style="clear: both;"></div>
</div>
</div>
</div>
<div id="time2" class="times">
<div class="box1">
<div id="inner2">
<div id="text2" style="float: left;">販売終了まで</div><div id="countdown2" style="float: left;"></div>
<div style="clear: both;"></div>
</div>
</div>
</div>
</body>
</html>