【问题标题】:Is there a way to pass in a UTC offset to a Moment utc object?有没有办法将 UTC 偏移量传递给 Moment utc 对象?
【发布时间】:2017-01-30 10:20:40
【问题描述】:

有没有办法将 UTC 偏移量(即 -25200 或 -0700)传递给 moment.utc() 构造函数的构建时间?

即:

const timeUtc = moment.utc('Sun, 25 Sep 2016 12:30:00', 'ddd, DD MMM YYYY HH:mm:ss');

const timeDifference = '-25200';

调用任何方法将timeUtc矩对象转换为时区中具有timeDifference的UTC偏移量的矩对象?

【问题讨论】:

  • 请注意,我更正了您输入中的两个错误。我认为这些是复制/粘贴问题,但是 1)您有两次 2016,以及 2)不要使用 new 关键字。

标签: javascript momentjs


【解决方案1】:

Moment 有一个utcOffset 函数,可用于设置偏移量。但是,它不期望以秒为字符串的输入。您必须除以得到分钟数,这也会将其强制为一个数字。

const timeWithOffset = moment(timeUtc).utcOffset(timeDifference / 60);

这也是创建一个克隆,以免改变原始值。

如果您使用示例输入对此调用 .format(),您将获得 "2016-09-25T05:30:00-07:00"

这会正确地从 UTC 转换为提供的偏移量。相反,如果您的意思是原始值已经在该偏移量中,则将true 作为第二个参数传递给utcOffset 函数,您将得到"2016-09-25T12:30:00-07:00"

请注意,我假设您的输入偏移量代表 UTC-7。如果它实际上是 UTC+7,那么您还需要在其中乘以 -1。

【讨论】:

    猜你喜欢
    • 2012-12-14
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2020-03-02
    • 2022-06-27
    • 2010-09-16
    相关资源
    最近更新 更多