【问题标题】:Get only Timezone using Javascript使用 Javascript 仅获取时区
【发布时间】:2014-01-04 06:14:51
【问题描述】:

我正在尝试获取我们可以使用 Javascript 获得的所有可能的时区值。

我使用了多个代码语句,例如

d.getTimeZoneOffset()

然后正常new Date

但他们给了我对应的当前当地时间。是否有任何规定可以获取我们在 Javascript 中获得的所有可能的时区值?

谢谢

【问题讨论】:

    标签: javascript timezone offset localtime


    【解决方案1】:

    getTimeZoneOffset 准确地为您提供了 - 您提供的日期值的 偏移量,在运行代码的机器的时区中。 “时区”和“时区偏移”是两个不同的东西。请阅读the timezone tag wiki,尤其是标题为“时区!=偏移”的部分。

    Date 对象只能(本机)表示本地机器的时区一个时区,并且它具有一些使用 UTC 的功能。但除此之外,它不能表示其他时区。为此,您需要一个库。有关详细信息,请参阅this question 及其答案。

    总而言之,这个问题是荒谬的。 JavaScript 无法满足您的要求。即使可以,API 也允许从getTimeZoneOffset 返回任何数值,因此可能结果的范围与 JavaScript 中有效数字的范围相同。虽然实际上它会落在 -840 到 720 之间。

    【讨论】:

    • Matt 感谢您的解释,但我需要的是我可以使用 Javascript 获得的所有可能的时区值。例如,如果我执行 Date d = new Date();alert(d);它会给出类似 - 2013 年 12 月 17 日星期二 14:07:42 GMT+0530(印度标准时间)。我可以获取 Javascript 可能返回的所有可能值,例如(印度标准时间)吗?
    • 没有。如果没有我提到的库之一,这是不可能的。 “印度标准时间”并非来自 JavaScript 本身,而是来自您正在使用的特定网络浏览器(或其他环境)。根据您使用的浏览器,它会有很大的不同,即使这样也不一定有用。如果你能详细说明为什么你想这样做,也许我可以提供一个替代建议。
    • 基本上我想获取用户当前的本地时区,我将在具有相应特定时区的 Salesforce 中使用该时区。我想将 javascript 时区映射到 Salesforce 时区,并在 salesforce 代码中相应地使用它们。我希望我能够描述我想要做的功能。
    • 哇,这肯定是XY Problem... 你应该在更广泛的层面上提问,但总的来说,你似乎正在尝试进行时区检测,你可能想使用@987654324 @。我几乎肯定 SalesForce 使用IANA time zones(例如America/Los_Angeles)。时区偏移在这里对您没有帮助。
    猜你喜欢
    • 2021-07-24
    • 2014-02-15
    • 1970-01-01
    • 2020-04-08
    • 2012-01-05
    • 2014-11-27
    • 2016-08-05
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多