разобрать дату с моментом из формата GMT - PullRequest
0 голосов
/ 05 февраля 2020

Я не могу разобрать дату в следующем формате '4 февраля 2020 г., 15:15:14 GMT-6'

Я попытался указать формат, но безуспешно.

Без указания формата я получаю предупреждение: Предупреждение об устаревании: предоставленное значение не соответствует распознанному формату RFC2822 или ISO. Как получить проанализированную дату из этой строки?

Спасибо.

1 Ответ

1 голос
/ 05 февраля 2020

К сожалению, у Moment нет токена разбора для смещений типа GMT-6. Для корректной работы с токеном Z смещение должно быть не менее двух цифр. Вы можете использовать регулярное выражение замены, чтобы изменить вашу строку перед синтаксическим анализом.

var input = 'February 4, 2020, 3:15:14 PM GMT-6';
var adjusted = input.replace(/(GMT\+|-)([1-9])/, '$10$2');
var m = moment.parseZone(adjusted, 'MMMM D, YYYY, h:mm:ss A [GMT]Z');

m.format() //=> "2020-02-04T15:15:14-06:00"

(Возможно, есть улучшения в регулярном выражении, которые могут быть сделаны, но этот работает.)

...