javascript - 倒数计时器每日循环

标签 javascript jquery

我想用倒数计时器每天数到上午 10 点,所以我使用这个:

setInterval(function time(){
  var d = new Date();
  var hours = 09 - d.getHours();
  var min = 60 - d.getMinutes();

  if((min + '').length == 1){
    min = '0' + min;
  }
  var sec = 60 - d.getSeconds();
  if((sec + '').length == 1){
        sec = '0' + sec;
  }
  
  jQuery('#countdown p').html('<span>'+hours+'</span><span class="mins">'+min+'<br></span><span class="secs">'+sec+'</span>')
}, 1000)

但是,上午 10 点之后它显然想要变为负值,所以我想在上午 10 点之后添加一些东西以添加 24 小时,例如:

  if(hours >= 10){
      d = new Date() + 1;
  }

但无法让它工作,任何想法将不胜感激。

最佳答案

您想设置时间,然后使用 getDate() 方法。

setInterval(function time(){
  var start = new Date;
  start.setHours(10, 0, 0); // 10am
  var now = new Date;
  if (now > start) { // check current time is getter then add one day
      start.setDate(start.getDate() + 1);
  }


var days = ((start - now) / 1000);
    var hours = format((days / 60 / 60) % 60);
    var min = format((days / 60) % 60);
    var sec = format(days % 60);

jQuery('#countdown p').html('<span>'+hours+'</span><span class="mins">'+min+'<br></span><span class="secs">'+sec+'</span>')
},1000);

// Add before 0 of hour, min, sec
function format(num) {
    return ("0" + parseInt(num)).substr(-2);
}

关于javascript - 倒数计时器每日循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68404810/

相关文章:

javascript - .change() 仅适用于当多个打开时的选择

javascript - 鼠标悬停CSS Position绝对div在另一个TD上显示

javascript - 我应该如何在 jQuery 中使用 .sort() ?

javascript - 为什么这个带有简单异步回调的测试用例(Jest)会失败?

javascript - 延迟加载图像后运行 js

javascript - Ajax 语法 : Uncaught SyntaxError: Unexpected identifier

jquery - 动态 iframe onload 未触发?

javascript - myswiper.slideTo() 不是函数

javascript - 无法从 pageshow 函数修改innerHTML

php - 在表单提交之前查看图像的预览