时钟在不同的时区

我试图在一个网站上创建两个时钟,上面说了两次。 一个来自伦敦,另一个来自纽约。

我已经能够创建一个时钟来读取我的计算机上的当前时间,但我不知道如何为此设置时区。

我到目前为止的代码是:

 function renderTime() { var currentTime = new Date(); var diem = "AM"; var h = currentTime.getHours(); var m = currentTime.getMinutes(); var s = currentTime.getSeconds(); if (h == 0) { h = 12 } else if (h > 12) { h = h - 12; diem = "PM"; } if (h < 10) { h = "0" + h; } if (m < 10) { m = "0" + m; } if (s < 10) { s = "0" + s; } var myClock = document.getElementById ("clockDisplay"); myClock.textContent = h + ":" + m + ":" + s + " " + diem; setTimeout ('renderTime()', 1000); } renderTime();  

这适用于我创建的CSS样式,因此我可以使用特定字体的时钟。

您可以在日期中添加或减去小时数

 currentTime.setHours(currentTime.getHours()+offset); 

其中offset是任何小时数。

我用该行和函数更新了jsfiddle,以便它接受偏移量的参数。 这不是UTC偏移量,只是从系统时间添加多少小时。 您可以通过currentTime.getTimezoneOffset()/60获取当前UTC偏移量

演示

currentTime.getTimezoneOffset()将为您提供格林威治标准时间(GMT)与当地时间(以分钟为单位)之间的时差。

您可以使用该值来计算所需时区的时间。

正确执行此操作,您需要一个时区数据库,例如我在此处列出的数据库之一。

这个问题的所有其他答案都是错误地认为“时区”和“时区偏移”是一回事。 他们不是。 例如,伦敦的时区是Europe/London ,根据一年中的什么时间可以有+0或+1偏移。 纽约的时区是America/New_York ,根据与伦敦完全不同的日期,它可以有-5或-4的偏移。

你可能想看看时刻时区 :

 moment().tz("America/New_York").format() 

查看http://www.datejs.com/它很好地处理日期和时区

如果您查看演示,请在文本框中输入1 GMT vs 1 MST1 EST ,它会为您提供一个漂亮的日期/那个时区

感谢大家的帮助。 这一切都让人感到困惑,但我在这里找到了一个很好的例子,这就是我最终如何解决这个问题。 查看示例4: http : //www.ajaxupdates.com/jclock-jquery-clock-plugin/

希望它对其他人有用!

我在m php网站上使用以下内容:

  

我在哪里用表,所以这将填补

 

从洛杉矶(PDT或PST)的时间,但我的服务器也在那个时间运行,所以从服务器传递strftime可能不会产生相同的效果。 但正如所述,这是我决心在其他区域获得工作时间。