Поиск во входных данных дает неверную дату в материале, поэтому необходимо преобразовать дату в UTC - PullRequest
3 голосов
/ 20 марта 2020

Я расширяю MomentDateAdapter для моего требования. Когда я выбираю дату из календаря, я получаю правильный вывод, но когда я вручную набираю что-то в поле ввода, я получаю неправильный вывод.

Для выбранной даты я использую _moment.utc({ year, month, date }).locale(navigator.language); для преобразования выбранной значение в формате UT C, но я не уверен, как это сделать, когда пользователь выполняет поиск в поле ввода.

StackBlitz .

для воспроизведения:

  1. Попробуйте выбрать значение из календаря и увидеть консоль (обратите внимание, что дата конвертируется в UT C)
  2. Теперь попробуйте добавить дату вручную, набрав и увидев консоль (дата не конвертируется в UT C).

1 Ответ

4 голосов
/ 20 марта 2020

Вам нужно адаптировать ваш parse метод вызова moment для:

return moment.utc(value, parseFormat, this.locale, true);

, чтобы получить ut c Дата от вашего ввода.

Вот ваш адаптированный Stackblitz .

Методы format и createDate вызываются, если вы устанавливаете дату с помощью средства выбора, метод parse вызывается, если вы устанавливаете ее с помощью ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...