2016-11-22 13 views
0

私は自分のウェブサイトにカウントダウンクロックを表示するためのコードを書いています。javascriptカウントダウンクロックの日付問題

<div id="deadline_Container"> 
<div id="clockdiv"> 
    <span class="deadline_Text">You only have </span> 
<div> 
    <span class="days"></span><span class="smalltext">Day</span> 
</div> 
<div> 
    <span class="hours"></span><span class="smalltext">Hours</span> 
</div> 
<div> 
<span class="minutes"></span><span class="smalltext">Minutes</span> 
</div> 
    <div class="clockLast"> 
    <span class="seconds"></span><span class="smalltext">Seconds</span> 
</div> 
    <span class="deadline_Text2">left to use your voucher code!</span> 

</div> 
</div> 

とJavaScript: HTMLは次のようになります

<script type="text/javascript"> 
var deadline = new Date(Date.UTC(2016,11, 22, 23, 59, 59)); 
function time_remaining(endtime){ 
var t = endtime - new Date(); 
var seconds = Math.floor((t/1000) % 60); 
var minutes = Math.floor((t/1000/60) % 60); 
var hours = Math.floor((t/(1000*60*60)) % 24); 
var days = Math.floor(t/(1000*60*60*24)); 
return {'total':t, 'days':days, 'hours':hours, 'minutes':minutes, 'seconds':seconds}; 
} 
function run_clock(id,endtime){ 
var clock = document.getElementById(id); 

var days_span = clock.querySelector('.days'); 
var hours_span = clock.querySelector('.hours'); 
var minutes_span = clock.querySelector('.minutes'); 
var seconds_span = clock.querySelector('.seconds'); 

function update_clock(){ 
    var t = time_remaining(endtime); 

    days_span.innerHTML = t.days; 
    hours_span.innerHTML = ('0' + t.hours).slice(-2); 
    minutes_span.innerHTML = ('0' + t.minutes).slice(-2); 
    seconds_span.innerHTML = ('0' + t.seconds).slice(-2); 

    if(t.total<=0){ clearInterval(timeinterval); document.getElementById('deadline_Container').style.display = "none"; document.getElementById('deadline_Container2').style.display = "block"; } 
} 
update_clock(); 
var timeinterval = setInterval(update_clock,1000); 
} 
    run_clock('clockdiv',deadline); 
</script> 

だから、11月(2016、11、22)の22日に23.59で有効期限が切れるように設定することになっています。 30日残っているカウントダウンをチェックすると、それ以外はすべて機能します。他のすべての値は右(時、分、秒)です。 これで、日付を2016,10,22に設定すると、0日と表示されます。私はこれが問題を解決すると思うが、なぜこれが起こっているのか本当に理解していない。 誰かがコードの何が間違っているのを見ることができますか?

答えて

5

あなたは2016年11月22日の終了日をしたい場合は、あなたの場合には、あなたがそれを設定する必要があり、そう

= 0、11月= 10など1月ようパラメータは、ゼロベースであります次のようになります。

var deadline = new Date(Date.UTC(2016,10, 22, 23, 59, 59)); 
+1

これは意味があります。それをクリアしていただきありがとうございます! – MariaL

+1

@MariaL、Markさんの答えがあなたのものなら、それを受け入れるのを忘れてください:) – AxelH