Javascript每周五重复倒计时至中午

时间:2017-05-12 21:49:50

标签: javascript timer countdown

我会在显示一些代码后显示天数,小时数和分钟数,这些代码会将每天,每小时和每分钟的天数,时间和分钟计算到每个星期五中午为止?

(当星期五中午到达时,我希望计数器再次开始倒计时到下周五中午,所以计时器一遍又一遍地重复?)

不确定如何做到这一点,因为我相对较新的JS

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

这里有很多关于计时器和倒计时的问题,你应该能够从中找出基本的东西。下周五中午的一个非常简单的倒计时是:



function update(){

  // Get current date and time
  var today = new Date();

  // Get number of days to Friday
  var dayNum = today.getDay();
  var daysToFri = 5 - (dayNum < 5? dayNum : dayNum - 7);
  
  // Get milliseconds to noon friday
  var fridayNoon = new Date(+today);
  fridayNoon.setDate(fridayNoon.getDate() + daysToFri);
  fridayNoon.setHours(12,0,0,0);
  // Round up ms remaining so seconds remaining matches clock
  var ms = Math.ceil((fridayNoon - today)/1000)*1000;
  var d =  ms / 8.64e7 | 0;
  var h = (ms % 8.64e7) / 3.6e6 | 0;
  var m = (ms % 3.6e6)  / 6e4 | 0;
  var s = (ms % 6e4)    / 1e3 | 0;
  
  // Return remaining 
  return d + 'd ' + h + 'h ' + m + 'm ' + s + 's';
}

// Run update just after next full second
function runUpdate() {
  var el = document.getElementById('toFriday');
  el.innerHTML = update();
  setTimeout(runUpdate, 1020 - (Date.now()%1000));
}

 runUpdate();
&#13;
<div>Remaining to noon next Friday: <span id="toFriday"></span>
&#13;
&#13;
&#13;

这是一个非常基本的实现,当它超过夏令时边界(可以避免)时会跳过,但它应该适合于简单的倒计时,其中剩余的时间并不重要。它只会在短时间内出错:

  • 在观察到夏令时的地方,
  • 在一年中的两天,夏令时变化产生影响,
  • 如果更改不是午夜