Почему дата с datapicker angular показывает прошлый день?

Всем привет. Использую datapicker с angular material. Вот код:
<td [formGroup]="item">
  <div class="input-group">
    <div class="input-group-addon">
      <mat-datepicker-toggle mdSuffix [for]="picker"></mat-datepicker-toggle>
      <mat-datepicker #picker></mat-datepicker>
    </div>
    <input class="form-control" [matDatepicker]="picker" placeholder="Date" formControlName="date" [class.error]="!item.get('date').valid && item.get('date').touched">
  </div>
</td>

Datapicker находится в форме которая при отправке отправляет его значение на сервер. Но проблема в том что значения передается за прошлый день. К примеру, я выбрал 1/18/2018, но отправило на сервер 2018-01-17T22:00:00.000Z. Странно то, что angular pipe для date конвертит дату правильно, но перед тем как вывести, у меня на сервере есть запрос на группирование по месяцу и первый день нового месяца подпадает в последний день предыдущего. Может кто-то стыкался с такой проблемой. Спасибо.
  • Вопрос задан
  • 205 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Eldari
Компонент возвращает дату в UTC, о чем свидетельствует z на конце. Группируете по локальному времени. Соответственно перед сохранением нужно преобразовать дату. Прочитайте про ISODATE. И нужно проверить что действительно было отправлено на сервер, что было получено и что сохранилось - скорее всего смещение в базе не сохранилось.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы