Javascript 为什么我的倒计时钟停止计时了?

Javascript 为什么我的倒计时钟停止计时了?,javascript,html,Javascript,Html,让我先说一句,我对JavaScript一无所知 例如,我只想链接到一个倒计时,它将倒计时到特定服务器打开时 我曾经进行倒计时,并对其进行了修改,以便它使用服务器时间而不是客户端时间 var serverNow = new Date().toLocaleString("en-US", {timeZone: "Asia/Seoul"}); var tomorrowKR = new Date(serverNow); tomorrowKR.setDate(tomorrowKR.getDate()+1

让我先说一句,我对JavaScript一无所知

例如,我只想链接到一个倒计时,它将倒计时到特定服务器打开时

我曾经进行倒计时,并对其进行了修改,以便它使用服务器时间而不是客户端时间

var serverNow =  new Date().toLocaleString("en-US", {timeZone: "Asia/Seoul"});

var tomorrowKR = new Date(serverNow);
tomorrowKR.setDate(tomorrowKR.getDate()+1)
tomorrowKR.setHours(18,0,0,0)

var countDownDateKR = tomorrowKR.getTime();
var x = setInterval(function() {
  var now = new Date(serverNow).getTime();
  var distanceKR = countDownDateKR - now;
  var hoursKR = Math.floor((distanceKR % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutesKR = Math.floor((distanceKR % (1000 * 60 * 60)) / (1000 * 60));
  var secondsKR = Math.floor((distanceKR % (1000 * 60)) / 1000);

  document.getElementById("ASIAServer").innerHTML = "The KR Server is currently CLOSED, but will open again in " + hoursKR + "h " + minutesKR + "m " + secondsKR + "s (6 PM KST)" ;
  }, 1000);
}

这个错误似乎是有道理的

var now = new Date(serverNow).getTime();
如果我删除“serverNow”并让它随着客户端时间滚动,它将倒计时。 将其更改为serverNow,将显示正确的倒计时时间,但实际的倒计时操作将停止


这是怎么回事

setInterval
内运行
newdate(serverNow)
时,该值不会更新,因为
serverNow
不会更改
serverNow
是一个固定字符串,它保留第一次加载页面时的值。要使
立即
以每个间隔更新,您需要获取最新的服务器时间:

now = new Date(new Date().toLocaleString("en-US", {timeZone: "Asia/Seoul"})).getTime();

绝对不是世界上最漂亮的代码。您应该知道,在香草Javascript中处理日期和时区总是很麻烦。很多人使用Moment.js来避免令人头疼的问题。

您是否检查了console中的错误?“并对其进行了修改,以便它使用服务器时间”-您具体在哪里做的?不是用
var serverNow=new Date().toLocaleString(…)
,这仍然是绝对的,纯粹的客户端。@Justinas是的,空的:/What's timezone offset?@CBroe我明白了,是的,但我真正想要的是让人们知道它什么时候在下午6点KST或其他时间可用。那还不够倒计时吗?