使用javascript在html上显示实时时钟

时间:2018-05-20 18:56:21

标签: javascript

有人可以帮我解决这个问题吗,我使用JS

非常糟糕

我想在应用程序中只显示巴西时间,无论用户访问应用程序的位置如何。

<head>
        <script>
            function display_c() {
                var refresh = 1000; // Refresh rate in milli seconds
                mytime = setTimeout('display_ct()', refresh)
            }

            function display_ct() {
                var strcount
                var x = new Date().toLocaleString("en-US", {timeZone: "America/Sao_Paulo"});
                var x1 = x.getMonth() + 1 + "/" + x.getDate() + "/" + x.getYear();
                x1 = x1 + " - " + x.getHours( ) + ":" + x.getMinutes() + ":" + x.getSeconds();
                document.getElementById('ct').innerHTML = x1;

                tt = display_c();
            }
        </script>
</head>

<body onload=display_ct();>
<span id='ct' ></span>
</body>

错误

painel:48 Uncaught TypeError: x.getMonth is not a function
at display_ct (painel:48)
at onload (painel:57)

2 个答案:

答案 0 :(得分:3)

此代码将执行您想要的操作。您的问题是您在x变量上使用了toLocaleString,然后尝试在其上使用getMonth()方法。但是,该变量不再是日期;当您使用toLocaleString时,将其转换为字符串。默认情况下,本地字符串的格式为几乎您喜欢的方式。我只需改变一点就可以在日期和时间之间使用短划线而不是默认的逗号。

&#13;
&#13;
var timeDisplay = document.getElementById("time");


function refreshTime() {
  var dateString = new Date().toLocaleString("en-US", {timeZone: "America/Sao_Paulo"});
  var formattedString = dateString.replace(", ", " - ");
  timeDisplay.innerHTML = formattedString;
}

setInterval(refreshTime, 1000);
&#13;
<p id="time"></p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

function startTime() {
  var today = new Date();
  var h = today.getHours();
  var m = today.getMinutes();
  var s = today.getSeconds();
  m = checkTime(m);
  s = checkTime(s);
  document.getElementById('txt').innerHTML =
  h + ":" + m + ":" + s;
  var t = setTimeout(startTime, 500);
}
function checkTime(i) {
  if (i < 10) {i = "0" + i};  // add zero in front of numbers < 10
  return i;
}

<body onload="startTime()">

在您的html

<div id="txt"></div>