【问题标题】:How to get the Australian Time Zone using Javascript? (Not JQuery)如何使用 Javascript 获取澳大利亚时区? (不是 JQuery)
【发布时间】:2015-07-11 04:02:52
【问题描述】:

我正在尝试帮助一位朋友获得澳大利亚时区的大学作业并发现困难。 有人能指出我们正确的方向吗? 谢谢!

<script>
function Timezone() {
var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
document.getElementById("add").innerHTML = currentTimeZoneOffsetInHours;
}
</script>

<p id="add"></p>

【问题讨论】:

  • 您遇到了什么问题?如果您可以更具体一些,也许人们可以提供帮助。此外,jsfiddle.net 上的示例总是很好:)
  • “澳大利亚时区”是什么意思?澳大利亚有多个时区,其中一些时区在一年中的不同时间适用不同的偏移量。阅读time in Australiatimezone tag wiki 和我的博文What is a Time Zone。还可以考虑观看我的 Pluralsight 课程,Date and Time Fundamentals

标签: javascript time timezone utc


【解决方案1】:

你只需使用

let AuDate = new Date().toLocaleString("en-US", {timeZone: "Australia/Sydney"});

【讨论】:

    【解决方案2】:

    通过查看您的代码,您似乎正在尝试获取澳大利亚时区的当前日期和时间。假设您想要澳大利亚东部标准时间 (AEST),并且希望日期显示在澳大利亚 DD-MM-YYYY 中,然后执行以下操作:

    var timestamp_UTC = new Date();
    var readable_timestamp_AEST = timestamp_UTC.toLocaleDateString("en-AU", {timeZone: "Australia/Sydney"}).replace(/\//g, "-") + ' ' + somestamp.toLocaleTimeString("en-AU", {timeZone: "Australia/Sydney"});
    

    "en-AU" 是 locales 参数,它告诉 toLocalDateString 将日期显示为 DD-MM-YYYY,第二个参数用于 options(时区只是一个这样的可能选项)。关于toLocalDateString函数的信息可以在这里找到https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

    这里是关于 Date() 函数https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date的一些信息

    希望这可以解决一些关于从 Date() 函数获取时间和日期的问题。

    【讨论】:

      【解决方案3】:

      我想我明白你的意思。但在此之前,我想提出 2 点:

      1:应该在某个地方调用 Timezone() 函数。

      <script>
        function Timezone() {
          var x = new Date();
          var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
          document.getElementById("add").innerHTML = currentTimeZoneOffsetInHours;
        }
        Timezone();
      </script>
      

      2:约定通常是方法以小写字母开头。也许updateTimezone() 会更合适。

      您的问题现在可以用两种方式解释:

      • 您希望您的时区偏移以小时为单位,为此,上面的代码应该可以工作。 getTimezoneOffset() 是要走的路。
      • 您想要一个可读的时区名称,正如您在我的网站 currentmillis.com 上看到的那样(在我的例子中是 GTB Summer)。您可以查看我的源代码,了解我是如何实现这一点的:
      var s = date.toString();
      var iOfP = s.indexOf('('); // 括号索引
      如果(iOfP  4 && s.lastIndexOf("Time") == s.length-5){
        s = s.substring(0, s.length-5);
      }
      timezoneM.innerHTML = s;

      这是有效的,因为当您在日期调用 toString() 时,结果应该包含您的时区的全名:w3schools.com/jsref/jsref_tostring_date.asp

      【讨论】:

        猜你喜欢
        • 2020-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多