我想知道如何改进脚本,以便计时器一直计数到午夜(例如),然后不会进入负数区域,而是再次开始 24 小时倒计时
const deadlineV1 = '2021-06-29';
setClockV1('.timer', deadlineV1);
function getTimeRemaining(endtime) {
const t = Date.parse(endtime) - Date.parse(new Date());
const days = Math.floor(t / (1000 * 60 * 60 * 24));
const seconds = Math.floor((t / 1000) % 60);
const minutes = Math.floor((t / 1000 / 60) % 60);
const hours = Math.floor((t / (1000 * 60 * 60)) % 24);
return {
total: t,
days: days,
hours: hours,
minutes: minutes,
seconds: seconds,
};
}
function getZero(num) {
if (num >= 0 && num < 10) {
return '0' + num;
}
return num;
}
function setClockV1(selector, endtime) {
const timer = document.querySelector(selector);
const days = timer.querySelector('#days-v1');
const hours = timer.querySelector('#hours-v1');
const minutes = timer.querySelector('#minutes-v1');
const seconds = timer.querySelector('#seconds-v1');
const timeInterval = setInterval(updateClock, 1000);
updateClock();
function updateClock() {
const t = getTimeRemaining(endtime);
days.innerHTML = getZero(t.days);
hours.innerHTML = getZero(t.hours);
minutes.innerHTML = getZero(t.minutes);
seconds.innerHTML = getZero(t.seconds);
if (t.total <= 0) {
clearInterval(timeInterval);
}
}
}
<div class="timer">
<div class="timer__block">
<span id="days-v1"></span>
<p>DAYS</p>
</div>
<div class="timer__block">
<span id="hours-v1"></span>
<p>HR</p>
</div>
<div class="timer__block">
<span id="minutes-v1"></span>
<p>MIN</p>
</div>
<div class="timer__block">
<span id="seconds-v1"></span>
<p>SEC</p>
</div>
</div>
您需要对以下代码进行更改:
并将 const deadlineV1 替换为