我的方案应开始计算时间,从今天到用户在投入领域抽出的时间计算剩下的时间。
www.un.org/Depts/DGACM/index_spanish.htm 虽然该方案用正确的时间更新了超文本,但问题始于我试图每秒更新计时。 由于某种原因,它恢复了NaN的数值。 为什么?
我在此提出以下意见:
const input = document.querySelector( input )
let timeInterval;
let timeStop;
input.addEventListener( change , (e) => {
e.preventDefault()
timeStop = true;
endTime = Date.parse(e.target.value)
updateHTML(endTime)
})
function updateHTML(endTime) {
let time = calculateTimeDiff(endTime)
if (time.total <= 0) {
timeStop = false;
}
for (let pro in time) {
let el = document.querySelector(`.${pro}`)
if (el) {
el.innerHTML = time[pro];
}
}
updateCounter();
}
function updateCounter () {
if (timeStop) {
timeInterval = setInterval(updateHTML, 1000);
} else {
clearInterval(timeInterval);
}
}
//returning time remaining till date in object form
function calculateTimeDiff(endTime) {
let start = Date.now();
let end = endTime;
let t = (end-start);
let seconds = Math.floor((t / 1000) % 60);
let minutes = Math.floor((t / 1000 / 60) % 60);
let hours = Math.floor((t / (1000 * 60 * 60)) % 24);
let days = Math.floor(t / (1000 * 60 * 60 * 24));
return {
total: t,
days: days,
hours: hours,
minutes: minutes,
seconds: seconds
}
}