年底倒计时,使用 100% 间隔时间刻度来表示我们还剩下多少时间[已关闭]

问题描述 投票:0回答:1

我希望用户看到在这个 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;
javascript
1个回答
0
投票

您可以根据日期的毫秒值进行此计算

(我会让您根据您的时区完善此计算。)

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, '%');

© www.soinside.com 2019 - 2024. All rights reserved.