Как я могу изменить объект UTC moment.js, чтобы он отражал свойство "zone", которое у него уже есть? - PullRequest
0 голосов
/ 18 октября 2018

Хорошо, поэтому у меня есть данный моментальный объект, который я просматриваю в Инструментах разработчика:

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

Как видите, текстовое представление - 21.05.2017 8:15:00 вечера.Это правильное время в UTC, и я замечаю, что «_isUTC» имеет значение «истина».

Свойство _d показывает дату и время в CDT, где я сейчас нахожусь.Свойство _z показывает объект Zone, установленный на «Америка / Галифакс» - это динамически устанавливается в другом месте, но также правильно .

Я хотел бы вернуть момент чтения «5/21/ 2017 5:15:00 pm "потому что это дата и время в" America / Halifax ".

Существует так много функций moment.js, что я не нашел правильного способа сделать это.

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Я закончил тем, что сделал new Date(amoment.format('YYYY-MM-DDTHH:mm:ss+00:00'));, который работал для моих целей.Зона все время хотела отобразить дату в этой зоне, поэтому мне просто пришлось ее опустить.

0 голосов
/ 18 октября 2018

Все поля, начинающиеся с подчеркивания (_), должны быть внутренними по отношению к Моменту.Вы не должны использовать их вообще.Подробнее об этом здесь и здесь .

Чтобы вывести строку в определенном формате из объекта moment, используйте format функция.Например:

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