【问题标题】:Convert "stopwatch" time to hourly将“秒表”时间转换为每小时
【发布时间】:2014-09-14 14:17:16
【问题描述】:

我有一个内置在 JS 中的秒表计时器,它使用小时、分钟、秒和毫秒从 0 开始计数。当前,当用户点击停止按钮时,来自计时器的值会附加到隐藏的输入元素以提交表单。我需要将任何时间转换为每小时到它附加到隐藏输入的位置。所以现在如果我的时钟停在 25 分 00 秒,输入中的值是 00:25:00,我希望它将时间转换为 0.25(小时)

例如,在 30 分钟内附加到我的隐藏输入的值将是 0.5,在 45 分钟内将是 0.75,依此类推,以此类推。

这里是秒表脚本,Stop 函数是将值附加到我们隐藏输入的地方,只需确保将其转换为每小时

<script type="text/javascript">
      var clsStopwatch = function () {

      var startAt = 0;
      var lapTime = 0;

      var now = function () {
          return (new Date()).getTime();
      };

      this.start = function () {
          startAt = startAt ? startAt : now();
      };

      this.stop = function () {
          lapTime = startAt ? lapTime + now() - startAt : lapTime;
          startAt = 0;
      };

      this.time = function () {
          return lapTime + (startAt ? now() - startAt : 0);
      };
      };

      var x = new clsStopwatch();
      var $time;
      var clocktimer;

      function pad(num, size) {
      var s = "0000" + num;
      return s.substr(s.length - size);
      }

      function formatTime(time) {
      var h = m = s = ms = 0;
      var newTime = '';

      h = Math.floor(time / (3600 * 1000));
      time = time % (3600 * 1000);
      m = Math.floor(time / (60 * 1000));
      time = time % (60 * 1000);
      s = Math.floor(time / 1000);
      ms = time % 1000;

      newTime = pad(h, 2) + ':' + pad(m, 2) + ':' + pad(s, 2);
      //newTime = pad(h, 2) + ':' + pad(m, 2) + ':' + pad(s, 2) + ':' + pad(ms, 2);
      return newTime;
      }

      function show() {
      $time = document.getElementById('time');
      update();
      }

      function update() {
      $time.innerHTML = formatTime(x.time());
      }

      function start() {
      clocktimer = setInterval("update()", 1);
      x.start();
      }

      function stop() {
      x.stop();
      document.getElementById('counter').value = formatTime(x.time());
      clearInterval(clocktimer);
      }
      </script>

【问题讨论】:

  • 分钟数除以60?
  • 我也需要考虑秒数。我将信息发送到请求每小时格式的 API,本质上将用作项目任务计时器,所以任何一点都有帮助:) 我只是在数学上很烂..
  • 一秒是一小时的 1/3600。
  • 可以显示一种格式并发送另一种格式

标签: javascript


【解决方案1】:

如果我正确理解您的需求,这就是您的解决方案:

function millisecondsToHours(amountMS) {
    return amountMS / 3600000;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-28
    • 2020-04-06
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多