javascript - 将秒转换为天、小时、分钟和秒

标签 javascript

我有一个带有停止按钮的无限循环的 Javascript 计时事件。

单击开始按钮时它将显示数字。现在我希望将这些数字转换为 4 小时、3 分钟、50 秒

var c = 0;
var t;
var timer_is_on = 0;

function timedCount() {
  document.getElementById('txt').value = c;
  c = c + 1;
  t = setTimeout(function() {
    timedCount()
  }, 1000);
}

function doTimer() {
  if (!timer_is_on) {
    timer_is_on = 1;
    timedCount();
  }
}

function stopCount() {
  clearTimeout(t);
  timer_is_on = 0;

}

$(".start").on("click", function() {
  //var start = $.now();
  //alert(start);
  //console.log(start);
  doTimer();
  $(".end").show();
  $(".hide_div").show();
});
$(".end").on("click", function() {
  stopCount();
});
.hide_div {
  display: none;
}

.end {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p class="start">Start</p>
<p class="end">End</p>
<p class="hide_div">
  <input type="text" id="txt" />//display numbers eg 12345
</p>


如何将 123456 等数字转换为 1 天 4 小时 40 分钟 45 秒?

最佳答案

我建议这样做!:

function secondsToDhms(seconds) {
seconds = Number(seconds);
var d = Math.floor(seconds / (3600*24));
var h = Math.floor(seconds % (3600*24) / 3600);
var m = Math.floor(seconds % 3600 / 60);
var s = Math.floor(seconds % 60);

var dDisplay = d > 0 ? d + (d == 1 ? " day, " : " days, ") : "";
var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : "";
var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : "";
var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : "";
return dDisplay + hDisplay + mDisplay + sDisplay;
}

关于javascript - 将秒转换为天、小时、分钟和秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36098913/

相关文章:

javascript - 意外的标记 < 读取 xml 文件

javascript - 想要显示服务器 UTC 日期时间,而不考虑客户端计算机的日期时间

javascript - 我应该在 for in 构造中使用 var 吗?

javascript - 如何在Spring MVC中将图像从jsp传递到 Controller

javascript - 根据条件输出 <div>

像 Google Docs 这样的 JavaScript 布局引擎?

javascript - 数组的子数组

javascript - Bootstrap Datetimepicker 无法在折叠中工作

javascript - 多属性子集求和算法

javascript - React redux 等待来自 api 的数据