有没有办法将UTC偏移传递给Moment utc对象?

时间:2016-09-22 01:28:45

标签: javascript momentjs

有没有办法将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';

使用timeDifference的utc偏移调用timeUtc时刻对象转换为时区中的时刻对象的任何方法?

1 个答案:

答案 0 :(得分:0)

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。