当 Javascript 中小于 10 时,如何在 hours/minute/seconds 之前添加零?

How do I add zeros before hours/minute/seconds when they are < 10 in Javascript?

我在尝试创建实时时钟时遇到了一个问题:我试图在代表 minutes/hours/seconds 的数字前显示一个零,当它们小于 10 时,但该函数没有工作。有人可以解释我错在哪里以及为什么吗?是 if 语句的位置还是什么?我代表什么?

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title></title>
</head>

<body>
  <p id="p"></p>
  <script>
    function startClock() {

      var currentDate = new Date();

      var time = currentDate.getHours() + ":" + currentDate.getMinutes() + ":" + currentDate.getSeconds();

      document.getElementById("p").innerHTML = time;

      setTimeout(startClock, 1000);
    }

    function zeros(i) {
      if (i < 10) {
        return "0" + i;
      } else {
        return i;
      }
    }
    startClock();
    zeros();
  </script>
</body>

</html>

您的 zeros 函数接受一个数字,如果该数字小于 10,则在前面添加一个零。

您需要在设置时间时调用您的zeros函数将小时、分钟和秒转换为零加形式。

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title></title>
</head>

<body>
  <p id="p"></p>
  <script>
    function startClock() {

      var currentDate = new Date();

      var time = zeros(currentDate.getHours()) + ":" + zeros(currentDate.getMinutes()) + ":" + zeros(currentDate.getSeconds());

      document.getElementById("p").innerHTML = time;

      setTimeout(startClock, 1000);
    }

    function zeros(i) {
      if (i < 10) {
        return "0" + i;
      } else {
        return i;
      }
    }
    startClock();
    zeros(); // this doesn't do anything????
  </script>
</body>

</html>