【问题标题】:How to get Timezone offset from moment Object?如何从时刻对象获取时区偏移量?
【发布时间】:2026-01-08 07:45:02
【问题描述】:

我将moment 对象定义为:

var moment = require('moment');

moment('2015-12-20T12:00:00+02:00');

当我打印它时,我得到:

_d: Sun Dec 20 2015 12:00:00 GMT+0200 (EET)
_f: "YYYY-MM-DDTHH:mm:ssZ"
_i: "2015-12-20T12:00:00+02:00"
_isAMomentObject: true
_isUTC: false
_locale: r
_pf: Object
_tzm: 120

如何正确获取_tzm? (假设它的偏移量以分钟为单位)

谢谢,

【问题讨论】:

  • moment().utcOffset() ?
  • moment.tz.guess(); 最新构建

标签: javascript node.js momentjs


【解决方案1】:

就像在任何对象中一样访问属性

var result = moment('2015-12-20T12:00:00+02:00');


document.body.innerHTML = result._tzm;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.1/moment.min.js"></script>

另一种选择是解析日期并获取区域

moment.parseZone('2015-12-20T12:00:00+02:00').utcOffset(); // 120
// or
moment().utcOffset('2015-12-20T12:00:00+02:00')._offset; // 120

【讨论】:

  • 如果您需要 angulardate 管道的偏移量,您可以使用 momentObject.format('Z'),它返回例如 -08:00