如何更改UTC moment.js对象以反映它已经具有的“ zone”属性?

时间:2018-10-17 21:50:29

标签: datetime timezone momentjs utc

好的,所以我有这个要在开发人员工具中查看的对象:

amoment: Moment _a: (7) [2017, 4, 21, 20, 15, 0, 0] _d: Sun May 21 2017 15:15:00 GMT-0500 (Central Daylight Time) {} _f: "MM/DD/YYYY h:mm A" _i: "5/21/2017 8:15:00 PM" _isAMomentObject: true _isUTC: true _isValid: true _locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", ordinal: ƒ, _dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, …} _offset: -180 _pf: {empty: false, unusedTokens: Array(0), unusedInput: Array(1), overflow: -1, charsLeftOver: 3, …} _strict: false _z: Zone {name: "America/Halifax", abbrs: Array(229), untils: Array(229), offsets: Array(229), population: 390000} __proto__: Object

如您所见,文本表示为5/21/2017 8:15:00 pm。这是UTC的正确时间,我注意到“ _isUTC”为“ true”。

_d属性在CDT中显示该日期时间,我现在在这里。 _z属性显示一个设置为“ America / Halifax”的Zone对象-该对象在其他位置动态设置,但正确也是如此。

我想回想一下“ 5/21/2017 5:15:00 pm”,因为那是“美国/哈利法克斯”中的日期时间。

有太多的moment.js函数,我没有找到正确的方法来实现。

2 个答案:

答案 0 :(得分:0)

所有以下划线(_开头的字段都属于Moment内部。您根本不应该使用它们。有关herehere的更多信息。

要从moment对象以特定格式输出字符串,请使用format函数。例如:

yourMomentObject.format("M/D/YYYY h:mm:ss a")  //=> "5/21/2017 5:17:00 pm"

答案 1 :(得分:0)

我最终做了new Date(amoment.format('YYYY-MM-DDTHH:mm:ss+00:00'));,这对我来说很有效。该区域一直想在该区域中显示日期,因此我只需要忽略它。