首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >倒计时格式显示时间变量超过23小时

倒计时格式显示时间变量超过23小时
EN

Stack Overflow用户
提问于 2022-04-04 05:05:10
回答 1查看 22关注 0票数 0

我在倒计时的时候出了问题,它显示的时间比"23“还多。知道怎么修吗?

代码语言:javascript
复制
String.prototype.toHHMMSS = function() {
    var sec_num = parseInt(this, 10);
    var days = Math.floor(sec_num / 86400);
    var hours = Math.floor(sec_num / 3600);
    var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
    var seconds = sec_num - (hours * 3600) - (minutes * 60);
    

    return days + " days" + " : " + hours + " hrs" + " : " + minutes + " min" + " : " + seconds + " sec";
  };
  
  
  let startTime = 1649303300; // database unix-timestamp value
  setInterval(() => {
    let curTime = (new Date()).getTime() / 1000;
    curTime = parseInt(curTime);
  

    if (curTime < startTime){
        document.getElementById("timer1").innerText = ("LAUNCHING IN:");
        document.getElementById("timer").innerText = (`${startTime-curTime}`).toHHMMSS();
        
    }
    else {
        document.getElementById("timer1").innerText = ("LAUNCHED");
        document.getElementById("timer").innerText = ("");
    }
    
    
  }, 1000);

我的“小时”变量超过了"23“,而不是每24小时增加一天。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-04 05:13:42

您不会以为minutesseconds所做的方式从minutes变量中减去天数。尝试像这样声明您的小时数变量:

代码语言:javascript
复制
var days = Math.floor(sec_num / 86400);
var hours = Math.floor((sec_num - (days * 86400)) / 3600);

您还可以使用模块化算法来去除多余的值。您可以使用模块化运算符。

代码语言:javascript
复制
String.prototype.toHHMMSS = function() {
    var sec_num = parseInt(this, 10);
    var days = Math.floor(sec_num / 86400);
    var hours = Math.floor(sec_num / 3600) % 24;
    var minutes = Math.floor(sec_num / 60) % 60;
    var seconds = sec_num % 60;
    

    return days + " days" + " : " + hours + " hrs" + " : " + minutes + " min" + " : " + seconds + " sec";
  };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71732254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档