Ionic 4 автоматически меняет дату, установленную через GUI (ion-datetime) - PullRequest
0 голосов
/ 16 октября 2019

После публикации этого вопроса ранее его ответ был именно тем, что мне было нужно, и он работает, как я хочу, но у меня неожиданное поведение при установке даты из ion-datetime: дата, которую я выбрал, не 'не соответствует дате, которую он устанавливает. Всегда добавляет еще один месяц, и когда я устанавливаю 31-й день, добавляется один день, снова меняя месяц. Это нормально?

Если для дальнейшего понимания нужна какая-то информация, вот как она осталась:

<ion-datetime displayFormat="D/M/YYYY" pickerFormat="D M YYYY"
  min="{{minDate.getFullYear()}}" max="{{minDate.getFullYear()+10}}"
  [(ngModel)]="object.limitDate" [pickerOptions]="customPickerOptions">
</ion-datetime>
private customPickerOptions: any;

constructor(private angularFirestore: AngularFirestore) {
  this.customPickerOptions = {
    buttons: [{
      text: 'Cancelar',
      role: 'cancel'
    }, {
      text: 'Guardar',
      handler: (result: any) => {
        const date: string = new Date(result.year.value, result.month.value, result.day.value).toISOString();
        this.angularFirestore.collection('object').doc<ObjectType>(this.docId).update({ limitDate: date });
      }
    }]
  };
}

1 Ответ

1 голос
/ 17 октября 2019

Похоже, Ionic использует диапазон индексов 1-12 в течение нескольких месяцев. Дата объект JavaScript использует 0-11. Так, если вы, например, выберете февраль в DatePicker, вы получите 2 от ion-datetime, который будет в javascript March (0,1,2).

Кроме того, при использовании нового Date () javscript всегда применяет браузеры/ часовой пояс машины к вашей прошедшей дате.

Редактировать: я предлагаю вам начать использовать MatMomentDateModule. Там вы можете определить, как должна отображаться ваша дата и как должен анализироваться ввод данных. С моментами вы можете свободно обрабатывать часовые пояса.

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