【发布时间】:2020-04-14 07:55:16
【问题描述】:
我想展示两次:一次在你的国家,一次在日本,用 JS
问题是第二个 setInterval 停止了第一个,我不知道如何进行两次运行。
完整代码
<html>
<head></head>
<body>
<p style="font-size: 20px; font-family: SF Compact Display;">In your region:</p>
<script type="text/javascript">
document.write ('<p><span id="date-time">', new Date().toLocaleString(), '<\/span><\/p>')
if (document.getElementById) onload = function() {
setInterval ("document.getElementById ('date-time').firstChild.data = new Date().toLocaleString()", 50)
}
</script>
<p style="font-size: 20px; font-family: SF Compact Display;">In Japan:</p>
<script type="text/javascript">
var asiaTime = new Date().toLocaleString("en-US", {timeZone: "Asia/Tokyo"});
asiaTime = new Date(asiaTime);
var options = {dateStyle: 'medium', hour:'numeric', minute:'numeric', second:'numeric'}
console.log('Asia time: '+asiaTime.toLocaleString(options))
document.write ('<p><span id="japantime">', asiaTime, '<\/span><\/p>')
if (document.getElementById) onload = function() {
function japanTime() {
document.getElementById('japantime').firstChild.data = asiaTime
}
setInterval ("document.getElementById ('japantime').firstChild.data = new Date().toLocaleString()", 50)
}
</script>
</body>
</html>
如果有人可以帮助我,那就太棒了!
【问题讨论】:
-
一个新的
setInterval不会阻止之前的setInterval。我认为这两种情况发生得非常快,而你只看到其中一种的结果。setInterval返回一个 ID,您可以在开始下一个间隔之前使用该间隔。也就是说,setTimeout在大多数情况下往往是更好的选择,但您确实需要在每次循环交互时手动重新运行它。 -
事实上我正在做类似的事情:link
-
@JeremyJStarcher 但时间在“在您所在的地区:”下运行
-
但是你为什么还需要两个
setIntervals呢?您可以将所有代码放在一个setInterval中。为什么它需要这么快? -
您链接中的代码与您问题中的代码有很大不同。如果你想要有用的答案,你必须尽可能提出最好的问题。您甚至可以根据需要更新问题。
标签: javascript html time setinterval