JavaScript时钟问题

JavaScript Clock Issue

本文关键字:问题 时钟 JavaScript      更新时间:2023-09-26

我正在尝试创建一个显示两个国家时间的时钟。

<!DOCTYPE html>
<html>
  <head>
    <title></title>
    <meta charset="utf-8" />
    <script>
      function disptime() {
        now = new Date()
        hours = now.getHours();
        hours = hours < 10 ? "0" + hours:hours;
        minutes = now.getMinutes();
        minutes = minutes < 10 ? "0" + minutes:minutes;
        seconds = now.getSeconds();
        seconds = seconds < 10 ? "0" + seconds:seconds;
        milli = now.getTime();
        millib = milli + (6*60*60*1000);
        bhutan = new Date();
        bhutan = setTime(millib);
        bhutanHours = bhutan.getHours();
        bhutanHours = bhutanHours < 10 ? "0" + bhutanHours:bhutanHours;
        document.getElementById("bhutanClock").innerHTML=bhutanHours+ " : " + minutes + " : " + seconds;
        document.getElementById("UKClock").innerHTML=hours+ " : " + minutes + " : " + seconds;
        setTimeout("disptime()",1000);
      }
    </script>
  </head>
  <body onload="disptime()">
    <p id="bhutanClock"></p>
    <p id="UKClock"></p>
  </body>
</html>

为什么当我加载此页面时,浏览器中看不到任何内容?

第一个错误:您需要在Date()对象上应用setTime

bhutan = bhutan.setTime(millib);

并更改此部分,因为某些原因,它显示为整数中的毫秒:

bhutan = new Date();
bhutan = new Date(bhutan.setTime(millib));

工作代码段

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="utf-8" />
  <script>
    function disptime() {
      now = new Date()
      hours = now.getHours();
      hours = hours < 10 ? "0" + hours : hours;
      minutes = now.getMinutes();
      minutes = minutes < 10 ? "0" + minutes : minutes;
      seconds = now.getSeconds();
      seconds = seconds < 10 ? "0" + seconds : seconds;
      milli = now.getTime();
      millib = milli + (6 * 60 * 60 * 1000);
      bhutan = new Date();
      bhutan = new Date(bhutan.setTime(millib));
      bhutanHours = bhutan.getHours();
      bhutanHours = bhutanHours < 10 ? "0" + bhutanHours : bhutanHours;
      document.getElementById("bhutanClock").innerHTML = bhutanHours + " : " + minutes + " : " + seconds;
      document.getElementById("UKClock").innerHTML = hours + " : " + minutes + " : " + seconds;
      setTimeout("disptime()", 1000);
    }
  </script>
</head>
<body onload="disptime()">
  <p id="bhutanClock">
  </p>
  <p id="UKClock">
  </p>
</body>
</html>

现在运行良好:http://output.jsbin.com/bemuyawivu

问题出在bhutan = setTime(millib);

函数setTime未在全局作用域上定义。我相信您正在寻找bhutan.setTime(millib)

此外,setTimeout应替换为setTimeout(disptime, 1000);

工作小提琴。