Javascript 每天和每周日倒计时至 UTC 凌晨 4 点

问题描述 投票:0回答:1

我正在为一款 MMORPG(游戏)构建一个资源,该资源每天和每周都会重置。一次重置是每周日凌晨 4 点(世界标准时间),另一次重置是每天凌晨 4 点(世界标准时间)。我希望在页面顶部显示这些重置的倒计时器。

下面的 JavaScript 代码每天倒计时到午夜。我如何修改此代码以便可以构建 2 个倒计时。 1 倒计时到 UTC 凌晨 4 点(每天),另一个倒计时到每周日 UTC 凌晨 4 点?

var div=document.getElementById("bb");
 
setInterval(function(){ 
  var toDate=new Date();
  var tomorrow=new Date();
  tomorrow.setHours(24,0,0,0);
  var diffMS=tomorrow.getTime()/1000-toDate.getTime()/1000;
  var diffHr=Math.floor(diffMS/3600);
  diffMS=diffMS-diffHr*3600;
  var diffMi=Math.floor(diffMS/60);
  diffMS=diffMS-diffMi*60;
  var diffS=Math.floor(diffMS);
  var result=((diffHr<10)?"0"+diffHr:diffHr);
  result+=":"+((diffMi<10)?"0"+diffMi:diffMi);
  result+=":"+((diffS<10)?"0"+diffS:diffS);
  div.innerHTML=result;
  
},1000);

<div id="bb">
</div>
javascript countdown
1个回答
0
投票

我已经使用您已经编写的代码编写了下面的代码:

var div = document.getElementById("bb");
var div2 = document.getElementById("bc");

setInterval(function() { 
    var toDate = new Date();
    
    var tomorrow = new Date();
    tomorrow.setHours(28, 0, 0);
    var diffMS = tomorrow.getTime() / 1000 - toDate.getTime() / 1000;
    var diffHr = Math.floor(diffMS / 3600);
    diffMS = diffMS - diffHr * 3600;
    var diffMi = Math.floor(diffMS / 60);
    diffMS = diffMS - diffMi * 60;
    var diffS = Math.floor(diffMS);
    var result = ((diffHr < 10) ? "0" + diffHr : diffHr);
    result += ":" + ((diffMi < 10) ? "0" + diffMi : diffMi);
    result += ":" + ((diffS < 10) ? "0" + diffS : diffS);
    div.innerHTML = result;
    
    var nextSunday = getNextSunday(new Date());
    nextSunday.setHours(4, 0, 0);
    diffMS = nextSunday.getTime() / 1000 - toDate.getTime() / 1000;
    diffHr = Math.floor(diffMS / 3600);
    diffMS = diffMS - diffHr * 3600;
    diffMi = Math.floor(diffMS / 60);
    diffMS = diffMS - diffMi * 60;
    diffS = Math.floor(diffMS);
    result = ((diffHr < 10) ? "0" + diffHr : diffHr);
    result += ":" + ((diffMi < 10) ? "0" + diffMi : diffMi);
    result += ":" + ((diffS < 10) ? "0" + diffS : diffS);
    div2.innerHTML = result;
}, 1000);

function getNextSunday(d) {
  var t = new Date(d);
  t.setDate(d.getDate() + (7 - d.getDay()) % 7);
  return t;
}
<div id="bb">
</div>
<div id="bc">
</div>

首先,我做了一个小更改,为

tomorrow
添加了 4 个小时,以便它检查凌晨 4 点,而不是午夜。

之后,我刚刚添加了另一个

div
,我可以在其中输入从现在到周日凌晨 4 点之间的时间,并在底部添加一个获取下周日日期的函数。之后,代码几乎与您已经编写的代码相同!

© www.soinside.com 2019 - 2024. All rights reserved.