Javascript显示各种时区

web*_*ogs 2 javascript timezone timezone-offset

以下脚本应根据偏移量-10(夏威夷)显示当前本地时间,但它不起作用.

无法弄清楚我哪里出错了.

<h3>Current Time in Arizona is 
<script type="text/javascript">
<!--
    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()

    if (minutes < 10)
    minutes = "0" + minutes

    var suffix = "AM";
    if (hours >= 12) {
    suffix = "PM";
    hours = hours - 12;
    }
    if (hours == 0) {
    hours = 12;
    }

    document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>")
//-->
</script>
</h3>
Run Code Online (Sandbox Code Playgroud)

Mat*_*int 5

首先,您显示的代码只返回当前的本地时间.它甚至没有尝试在特定时区更改它.

其次,您需要阅读时区标签wiki.特别是,请阅读标题为"Time Zone!= Offset"的部分.

现在碰巧亚利桑那州和夏威夷目前没有使用夏令时,所以你可以通过偏移调整,如果这是你唯一的两个问题.但我相信你正在寻找更通用的解决方案.

要正确完成,您需要一个实现IANA时区数据库的库. 我在这里列出了几个.例如,以下是使用moment.jsmoment-timezone插件在洛杉矶显示当前时间的示例:

moment().tz("America/Los_Angeles").format("h:mm a")
Run Code Online (Sandbox Code Playgroud)

如果您只是想快速简便地在特定时区的网站上放置时钟,那么我建议您使用timeanddate.com提供的免费解决方案.