【问题标题】:javascript countdown clock date issuejavascript倒计时时钟日期问题
【发布时间】:2016-11-22 19:46:40
【问题描述】:

所以我编写了一些代码来在我的网站上显示倒计时时钟。 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 天,那么它是正确的。我想这可以解决问题,但我真的不明白为什么会这样。 有人能看出代码有什么问题吗?

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    month 参数以 0 为基础,因此一月 = 0,十一月 = 10 等等。

    因此,如果您希望结束日期为 2016 年 11 月 22 日,您需要将其设置为:

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

    【讨论】:

    • 哦,对,那是有道理的。感谢您清除它!
    • @MariaL,如果马克的回答适合你,别忘了接受它:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多