Javascript 在实际倒计时后进行不同的倒计时

Javascript 在实际倒计时后进行不同的倒计时,javascript,html,Javascript,Html,下一次倒计时我需要帮助。当实际倒计时结束时,我需要使用新的不同日期重置实际倒计时。所有这些都集中在一个简单的计数器中 $(函数(){ 函数倒计时(){ var now=新日期(); var eventDate=新日期('2017年11月3日13:02:20'); var secondEventDate=新日期('2017年11月9日10:18:40'); var currentTime=now.getTime(); var evenTime=eventDate.getTime(); if(ev

下一次倒计时我需要帮助。当实际倒计时结束时,我需要使用新的不同日期重置实际倒计时。所有这些都集中在一个简单的计数器中

$(函数(){
函数倒计时(){
var now=新日期();
var eventDate=新日期('2017年11月3日13:02:20');
var secondEventDate=新日期('2017年11月9日10:18:40');
var currentTime=now.getTime();
var evenTime=eventDate.getTime();

if(eventDate让我们稍微清理一下代码。首先,我们需要一些助手函数:

const addZero = n => n < 10 ? "0" + n : n;
const format = ms => {
   const result = [];
   [1000,60,60,24,31].reduce((carry, max) => {
      result.unshift(carry % max);
      return Math.floor(carry / max);
   },ms);
   result.pop();//remove milliseconds
   return result.map(addZero).join(":");
};

一些拼写,重新编写。
class Timer {
  constructor(to, el, finish){
    this.to = to;
    this.el = el;
    this.finish = finish;
    setTimeout(_ => this.update(), 1000);
  }
  update(){
    const ms = this.to - Date.now();
    this.el.innerHTML = format(ms);
    if(ms < 0){
       this.finish();
    }else{
      setTimeout(_ => this.update(), 1000);
    }
  }
}
new Timer(
   new Date('Nov 03, 2017 13:02:20'),
   document.body,
   () => new Timer(
      new Date('Nov 03, 2017 13:02:20'),
      document.body, 
      _ => _
   )
);