[英]Problems with countdown timer
我正在制作一個倒數計時器,以計算特殊事件。 代碼運行正常,但一天算錯了。 我認為該代碼不會從日期中獲取 h 值,但我不知道如何使其工作。 我認為這是錯誤的幾個小時。 我的本地時間是UTC+01:00
。
var eventDay = new Date("Feb 30, 2019 10:00:00").getTime();
var distance = setInterval(function () {
var now = new Date().getTime();
var distance = eventDay - now;
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60 * 24));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var sec = Math.floor((distance % (1000 * 60)) / 1000);
document.getElementById("days").innerHTML = days;
document.getElementById("hours").innerHTML = hours;
document.getElementById("minutes").innerHTML = minutes;
document.getElementById("sec").innerHTML = sec;
}, 1000);
要達到預期的結果,請使用以下選項
對於正確的小時數,應使用(1000 * 60 * 60)而不是 (1000 * 60 * 60 *24),因為小時數計算是錯誤的,(目前小時數是用天數計算的)
為缺少的日期添加 +1,因為計算不包括開始日期和結束日期
var eventDay = new Date("Feb 28, 2019 10:00:00").getTime(); var distance = setInterval(function(){ var now = new Date().getTime(); var distance = eventDay - now; var days = Math.floor(distance / (1000 * 60 * 60 * 24)) + 1; var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var sec = Math.floor((distance % (1000 * 60)) / 1000); document.getElementById("days").innerHTML = days; document.getElementById("hours").innerHTML = hours; document.getElementById("minutes").innerHTML = minutes; document.getElementById("sec").innerHTML = sec; }, 1000);
<span id="days"></span>d <span id="hours"></span>h <span id="minutes"></span>m <span id="sec"></span>s
你的問題是在這一行
var godziny = Math.floor((pozostalyCzas % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60 * 24));
你應該把它改成這個
var godziny = Math.floor((pozostalyCzas % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.