带有序列事件的HTML倒计时计时器

带有序列事件的HTML倒计时计时器,html,Html,在HTML中,我有一个倒计时计时器,这是w3提供的,但我似乎不知道一旦时间过期,如何用下一个日期重新加载计时器。例如,我想在假期之间倒计时。我假设我需要与今天的日期进行比较,但也不确定该模块是什么样子。任何帮助都将不胜感激。Thx var countDownDate=新日期(“2021年1月1日01:37:25”).getTime() var countDownDate=新日期(“2021年2月14日01:37:25”).getTime() var countDownDate=新日期(“2021

在HTML中,我有一个倒计时计时器,这是w3提供的,但我似乎不知道一旦时间过期,如何用下一个日期重新加载计时器。例如,我想在假期之间倒计时。我假设我需要与今天的日期进行比较,但也不确定该模块是什么样子。任何帮助都将不胜感激。Thx

var countDownDate=新日期(“2021年1月1日01:37:25”).getTime()

var countDownDate=新日期(“2021年2月14日01:37:25”).getTime()

var countDownDate=新日期(“2021年3月17日15:37:25”).getTime()


//确定我们倒计时的日期 var countDownDate=新日期(“2021年1月5日15:37:25”).getTime(); //每1秒更新一次倒计时 var x=setInterval(函数(){ //获取今天的日期和时间 var now=new Date().getTime(); //找出现在和倒计时日期之间的距离 var距离=倒计时日期-现在; //天、小时、分钟和秒的时间计算 变量天数=数学楼层(距离/(1000*60*60*24)); 可变小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60)); var分钟=数学楼层((距离%(1000*60*60))/(1000*60)); var秒=数学楼层((距离%(1000*60))/1000); //使用id=“demo”在元素中显示结果 document.getElementById(“demo”).innerHTML=days+d+hours+h +分钟+米+秒+秒; //如果倒计时结束,写一些文字 如果(距离<0){ 净间隔(x); document.getElementById(“demo”).innerHTML=“过期”; } }, 1000);
这应该能帮到你:

const日期=[
新日期(“2021年1月1日01:37:25”).getTime(),
新日期(“2021年2月14日01:37:25”).getTime(),
新日期(“2021年3月17日15:37:25”).getTime(),
];
常数间隔=设置间隔(刻度,1000);
函数nextDate(){
const now=Date.now();
返回日期。查找(日期=>date>now);
}
函数tick(){
const date=nextDate();
如果(!日期){
间隔时间;
document.getElementById(“demo”).innerHTML=“过期”;
}
让距离=date-date.now();
施工天数=数学楼层(距离/(1000*60*60*24));
距离-=天*1000*60*60*24;
恒时=数学楼层(距离/(1000*60*60));
距离-=小时*1000*60*60;
常数分钟=数学楼层(距离/(1000*60));
距离-=分钟*1000*60;
常数秒=数学楼层(距离/1000);
document.getElementById(“demo”).innerHTML=`到${new Date(Date.toLocaleDateString()}的时间:${days}天,${hours}小时,${minutes}分钟,${seconds}秒`;
}

它仅在未来没有更多日期时清除间隔。您可以通过更改
dates
变量中的数组来更改日期。但请注意,您必须保留升序日期。

我不完全清楚您的要求,但我认为您希望在清除前一个时间间隔时添加新的时间间隔。因此,在代码中
clearInterval(x)
之后,您需要再次使用该函数和新的过期日期
setInterval
。谢谢您,这正是我要找的,谢谢您为电路板工作!
<!-- Display the countdown timer in an element -->
<p id="demo"></p>

<script>
// Set the date we're counting down to
var countDownDate = new Date("Jan 5, 2021 15:37:25").getTime();

// Update the count down every 1 second
var x = setInterval(function() {

 // Get today's date and time
 var now = new Date().getTime();

  // Find the distance between now and the count down date
  var distance = countDownDate - now;

  // Time calculations for days, hours, minutes and seconds
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 *     60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // Display the result in the element with id="demo"
  document.getElementById("demo").innerHTML = days + "d " + hours + "h "
  + minutes + "m " + seconds + "s ";

  // If the count down is finished, write some text 
  if (distance < 0) {
   clearInterval(x);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }
}, 1000);
</script>