有人能向我解释一下这个倒计时计时器代码背后的逻辑吗



我在看"Youtube上10小时内10个Javascript项目";,在第一个项目中,我很难理解代码的一个重要部分,那就是从2020年9月到2021年新年的倒计时。

这是代码:

const newYears = '1 jan 2021';
function countdown (){

const newYearsDate = new Date (newYears);
const currentDate = new Date ();
const totalSeconds = (newYearsDate - currentDate)/1000;
const days = Math.floor(totalSeconds/3600/24);
const hours = Math.floor(totalSeconds/3600)%24;
const mins = Math.floor(totalSeconds/60)%60;
const seconds = Math.floor(totalSconds)%60;
daysE1.innerHTML = days;
hoursE1.innerHTML = hours;
minsE1.innerHTML = mins;
secondsE1.innerHTML = seconds;
}

我理解函数中的第一行和最后一行,但对于中间的那一行,我完全迷路了。这是基本的数学,所以我理解计算,我只是不明白为什么:

  1. 以获得秒数,用newYearsDate和currentDate的差值除以1000
  2. 为了得到剩余的天数,我们将总秒数除以3600,然后将结果除以24
  3. 可能最让我困惑的是,为什么要使用余数?我知道余数是什么,但我不明白它们在这种情况下的含义

总之,我只需要有人向我解释";const totalSeconds";至";const秒";。我知道我们在做什么,但不知道我们是怎么做的:/。

非常感谢,提前!!

希望你今天过得愉快!

以便用newYearsDate和currentDate的差值除以1000来获得秒数。

请参阅https://stackoverflow.com/a/41960/1468366和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#examples以毫秒为单位的差值。除以1000得到以秒为单位的总差值。

为了得到剩余的天数,我们将总秒数除以3600,然后将结果除以24。

一小时有3600秒,一天有24小时。啊。

可能最让我困惑的事情是,为什么要使用remainder?我知道余数是什么,但我不明白它们在这种情况下的含义?

将秒除以60并向下四舍五入(floor(,得到完整的分钟。使用% 60可以获得超过整分钟的秒数,这是您想要显示为实际秒数的秒数。对于超过整小时的分钟和超过整天的小时,也有同样的想法。

最新更新