javascript - 在计时器中以两位数显示小时、分钟和秒

标签 javascript timer

我正在使用 JavaScript 通过以下代码显示我的网站上经过的总时间。

它工作正常......但问题是当秒= 0时,它的字段为空,当秒和分钟在1到9之间时,它显示一位数字。相反,我想显示如下

if 59 seconds then == 00:00:59 (curretnly showing 59)
if 62 seconds then == 00:01:02 (currently showing 1:2)
if 70 seconds then == 00:01:10 (currently showing 1:10)
if 3640 seconds then == 01:00:40 (currently showing 1:0:40) 

我的意思是显示的字段应该用

修复

00:00:00 (hh:mm:ss)

格式

javascript代码使用如下:

var timeStamp = Date.now(),
sessionStamp = sessionStorage.getItem('ts'),
elapsedTime;
  if (!sessionStamp) {
    sessionStorage.setItem('ts', timeStamp.toString());
    sessionStamp = timeStamp;
  } else {
    sessionStamp = parseInt(sessionStamp);
  }

function increment() {
    elapsedTime = Date.now() - sessionStamp;
    d1= Math.round(elapsedTime / 1000).toString();
    d = Number(d1);
    var h = Math.floor(d / 3600);
    var m = Math.floor(d % 3600 / 60);
    var s = Math.floor(d % 3600 % 60);

    var hDisplay = h > 0 ? h + (h == 1 ? ":" : ":") : "";
    var mDisplay = m > 0 ? m + (m == 1 ? ":" : ":") : "";
    var sDisplay = s > 0 ? s + (s == 1 ? "0" : "") : "";

    document.getElementById('elapsedTime').textContent = hDisplay + mDisplay + sDisplay; 
 }
    setInterval(increment, 1000);

<强> JSFIDDLE

最佳答案

我已经更新了 JS fiddle http://jsfiddle.net/03L9pcm2/

这是我改变的内容

var hDisplay = h > 0 ? (h < 10 ? "0" + h + ":" : h + ":") : "00:";
var mDisplay = m > 0 ? (m < 10 ? "0" + m + ":" : m + ":") : "00:";
var sDisplay = s > 0 ? (s < 10 ? "0" + s : s) : "00";

关于javascript - 在计时器中以两位数显示小时、分钟和秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51915793/

相关文章:

javascript - clearInterval 不能与 setInterval 一起使用

c# - 等待事件沉默

Swift:如何触发Xcode项目中的函数?

ios - Timer.scheduledTimer 在 swift 3 中不起作用

javascript - 错误: Unnecessary use of boolean literals in conditional expression

javascript - react native : running JS code from Java Module in background with AlarmManager

javascript - 在javascript函数中获取代码隐藏值

javascript - 如何防止数组中的重复项?

javascript - 如何禁用滚动功能?

c++ - 什么可能导致 OpenGL 在 "Start Debugging"和 "Start without debugging"选项下表现不同?