我希望用户看到在这个 100% 范围内下一个百分比出现之前还剩下多少时间,我知道大约每三天半就会出现一个百分比,正好是 87.5 小时。我怎样才能制作一个可以代表我想要做的事情的函数?
另外,我还想看看何时执行该函数,如何将其设置为可以使用 setInterval 函数进行倒计时的小时间隔。我将在下面链接我的代码。
setInterval(function () {
const dt = new Date();
document.getElementById("datetime").innerHTML =
("0" + dt.getDate()).slice(-2) +
"." +
("0" + (dt.getMonth() + 1)).slice(-2) +
"." +
dt.getFullYear() +
" " +
("0" + dt.getHours()).slice(-2) +
":" +
("0" + dt.getMinutes()).slice(-2) +
":" +
("0" + dt.getSeconds()).slice(-2)
}, 1);
const start = new Date(2023,12,1);
console.log(start)
const end = new Date(2024,12,1);
console.log(end)
const today = new Date();
const total = end - start;
let progress = today - start;
const final = Math.round(progress / total * 100 ) + "%"
const finalCalc = document.querySelector("#percentage")
finalCalc.innerHTML = final;
您可以根据日期的毫秒值进行此计算
(我会让您根据您的时区完善此计算。)
const
ms_start = new Date(2024,0,1,0,0,0,0).getTime() // Milliseconds since Jan 1, 1970, 00:00:00.000 GMT
, ms_end_1p = (new Date(2024,11,31,23,59,59,999).getTime() - ms_start) / 100
;
let percentTime = Math.round((Date.now() - ms_start) / ms_end_1p);
console.log( 'percentTime =', percentTime, '%');