重启倒数计时器到每个下周五

时间:2017-03-13 14:34:53

标签: javascript jquery html timer countdown

我需要每个下周五重新启动我的倒数计时器,我似乎无法完成它。这是我的代码  这是我的小提琴

https://jsfiddle.net/9L7f5s6u/



var countDownDate = new Date("Mar 10, 2017 17:00:00").getTime();

var x = setInterval(function() {

var now = new Date().getTime();

var distance = countDownDate - now;

var days = Math.floor(distance / (1000 * 60 * 60 * 24)).toString();
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 *      60)).toString();
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)).toString();
var seconds = Math.floor((distance % (1000 * 60)) / 1000).toString();

document.getElementById("circle-days").innerHTML = days + "<div class='timer-font'>Días</div>";
document.getElementById("circle-hours").innerHTML = hours + "<div class='timer-font'>Hrs</div>";
document.getElementById("circle-minutes").innerHTML = minutes + "<div class='timer-font'>Min</div>";
document.getElementById("circle-seconds").innerHTML = seconds + "<div class='timer-font'>Seg</div>";

  if (distance < 0) {
    clearInterval(x);
    document.getElementById("timer").innerHTML = "EXPIRED";
  }
}, 1000);
&#13;
<span style="margin-right: 10px;">
      <span id="circle-days" class="circle-time"></span>
    </span>
    <span style="margin-right: 10px;">
      <span id="circle-hours" class="circle-time"></span>
    </span>
    <span style="margin-right: 10px;">
      <span id="circle-minutes" class="circle-time"></span>
    </span>
    <span id="circle-seconds" class="circle-time"></span>
  <span id="timer"></span>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

使用返回一周中第二天的函数(在这种情况下,5 /星期五和17作为小时)查看https://jsfiddle.net/9L7f5s6u/2/

function getNextDayOfWeek(date, dayOfWeek, hour) {
      var resultDate = new Date(date.getTime());
    resultDate.setDate(date.getDate() + (7 + dayOfWeek - date.getDay()) % 7);
    resultDate.setHours(hour,0,0,0);
    return resultDate;
}

代码基于https://codereview.stackexchange.com/questions/33527/find-next-occurring-friday-or-any-dayofweek添加开始时间。

答案 1 :(得分:0)

您可以查看顶部并使用MomentJS之类的内容,并为countDownDate添加一周。

或者您可以执行类似

的操作
countDownDate = new Date(countDownDate.valueOf() + 604800000);

所有这段代码都是从1970年1月1日开始以毫秒为单位的时间,并在此时间内以毫秒为单位增加1周,并在countDownDate之前一周创建一个新的日期对象。

这是假设countDownDate是星期五。

至于重置计时器,我认为代码不应该太难从那里继续

答案 2 :(得分:0)

我会做这样的事情https://jsfiddle.net/hdLz5rux/

countDownDate.setDate(countDownDate.getDate() + 7);