所以我写了一些代码来显示我网站上的倒计时时钟。 html看起来像这样:
<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:
<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月22日(2016年11月22日)的23.59到期。 现在这一切都有效,除了当我检查倒计时时它还剩30天。所有其他值都是正确的(小时,分钟,秒)。 现在,如果我将日期设置为2016,10,22,则表示0天,那么它是正确的。我想这可以解决问题,但我真的不明白为什么会这样。 任何人都可以看到代码有什么问题吗?
答案 0 :(得分:5)
月参数是基于零的,所以1月= 0,11月= 10等。
因此,如果您希望结束日期为2016年11月22日,则需要将其设置为:
var deadline = new Date(Date.UTC(2016,10, 22, 23, 59, 59));