【问题标题】:Javascript display various time zonesJavascript显示各种时区
【发布时间】:2013-09-05 20:54:18
【问题描述】:

以下脚本应该根据 -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>

【问题讨论】:

  • 这就是全部代码吗? calcTime() 似乎不存在于任何地方...
  • hoursd 定义在哪里?
  • 您需要包含calcTime的代码以及hoursd的定义。
  • 显然,我不需要反对票。我需要帮助!显然,我在这里遗漏了一些东西。我认为document.Write(CalcTime('Hawaii', '-10')); 应该是document.Write(currentTime('Hawaii', '-10'));
  • 所以,我更新了上面的脚本。我正在尝试做的是考虑时区变化,我似乎无法做到正确。这是jsfiddle

标签: javascript timezone timezone-offset


【解决方案1】:

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

其次,你需要阅读the timezone tag wiki。特别是,请阅读标题为“时区!= 偏移量”的部分。

现在碰巧亚利桑那州和夏威夷州目前不使用夏令时,因此如果您只关心这两个问题,您可以调整偏移量。但我确定您正在寻找更通用的解决方案。

要正确执行此操作,您需要一个实现 IANA 时区数据库的库。 I list several of them here。例如,下面是使用 moment.jsmoment-timezone 插件显示洛杉矶当前时间的示例:

moment().tz("America/Los_Angeles").format("h:mm a")

如果您只是在寻找一种快速简便的方法来在您的网站上设置特定时区的时钟,那么我建议您使用the free solution offered by timeanddate.com

【讨论】:

    【解决方案2】:

    编写一个函数以在 分钟/您的选择中将 日期 移动一些偏移量

    function offsetDate(offsetMinutes, d) {
        if (d) d = new Date(d);
        else d = new Date();
        if (offsetMinutes) d.setUTCMinutes(d.getUTCMinutes() + offsetMinutes);
        return d;
    }
    offsetDate(-10*60); // Thu Sep 05 2013 12:03:06 GMT+0100 (GMT Daylight Time)
    

    现在使用 UTC 函数来获取时间

    【讨论】:

    • 你是这个意思吗? Date.UTC(year, month, day[, hours[, minutes[, seconds[,ms]]]]) 时间是唯一会显示的东西。但是,它需要能够根据点击状态显示时间。所以,点击 Texas 会显示一次,California 会显示另一次。不确定如何“使用 UTC 函数”...
    • @webfrogs .getUTCMinutes().getUTCHours()
    • 基本上我的意思是,与其尝试移动时区,不如调整 Date 以便 UTC 值是您期望的本地时间时区,然后读出 UTC 时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    相关资源
    最近更新 更多