【问题标题】:how to set the timezone to 'America/New_York' regardless of browser timezone? (moment.js)无论浏览器时区如何,如何将时区设置为“America/New_York”? (时刻.js)
【发布时间】:2016-07-30 03:55:19
【问题描述】:

有没有办法使用 moment.js 或 moment-timezone 设置时区,以始终反映“America/New_York”,无论用户从何处访问应用程序?

我已经尝试过了,但对象的时区反映了浏览器的时区并返回 America/Los_Angeles。

moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", "America/New_York")

【问题讨论】:

  • 你的语法在这里完全没问题。当我运行它时,它会产生一个带有 -4 偏移量的日期,这是正确的。当你说“对象的时区”时,你在看什么属性?
  • 检查调试控制台。您是否收到错误"Moment Timezone has no data for America/New_York"?如果是这样,您没有加载 tz 数据。 See here.

标签: javascript date datetime timezone momentjs


【解决方案1】:

正如这里所说,

Moment.js docs

您需要包含时区模块并像这样使用它:

moment("8/26/2013 4:55 pm", "M/D/YYYY h:mm a").tz("America/New_York").format();

【讨论】:

    【解决方案2】:

    要更改默认时区,请将moment.tz.setDefault 与有效时区一起使用:

    moment.tz.setDefault("America/New_York");
    

    moment.js documentation

    【讨论】:

    • 以后创建新的时刻对象会不会在默认时区下创建?如果我的电脑设置为太平洋时区,似乎不会
    • 是的,将使用您在moment.tz.setDefault(... 中设置的默认时区创建新的时刻对象。
    猜你喜欢
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2016-09-05
    • 2012-04-09
    • 1970-01-01
    • 2014-04-10
    相关资源
    最近更新 更多