我需要每个下周五重新启动我的倒数计时器,我似乎无法完成它。这是我的代码 这是我的小提琴
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;
答案 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);