Угловое / Firestore / MomentJS - Как изменить значение даты перед использованием firestore 'set' и 'merge'?

Я использую следующий фрагмент, чтобы обновить документ в firestore. Это реактивная форма. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда я меняю дату в форме, форма будет обновлять ее в следующем формате:

Пт 22 июня 2018 00:00:00 GMT + 0100 (Британское лето Время)

Вопросы

1 - Можно ли преобразовать эту дату в то, как она появляется в самой подборке даты? В этом случае: 22/06/2018.

2 - Как только у меня есть этот формат, как отправить его в функцию Questions , чтобы вернуть значение и время, которое я хочу, а затем объединить его в фрагмент кода ниже, который обновляет мой документ с новым значением? В настоящее время фрагмент ниже обрабатывает все входы в форме live.

Код для обновления до firestore

async setDoc() {
  // this.formatDate(this.formGroup.value.my_date);
  console.log(this.formGroup.value.my_date);

  try {
    await this.docRef.set(this.formGroup.value, { merge: true });
    this.state = 'synced';
  } catch (err) {
    console.log('fireform = ', err)
    this.formError.emit(err.message)
    this.state = 'error';
  }
}

Код для обновления до firestore

Я проверяю предпочтительный формат даты для пользователей, а затем использую параметр moment.js для правильной даты.

formatDate(newIssueDate) {
var splitDate = newIssueDate.split('/');
var completeSplit = splitDate[0] + '/' + splitDate[1] + '/' + splitDate[2];

if (this.settingsService.usersetting_dateformat === 'DD/MM/YYYY') {
  var yearVal = splitDate[2];
  var monthVal = splitDate[1];
  var dateVal = splitDate[0];
} else {
  var yearVal = splitDate[2];
  var monthVal = splitDate[0];
  var dateVal = splitDate[1];
}

var now = new Date();
var hoursVal = now.getUTCHours();
var minutesVal = now.getUTCMinutes();
var secondsVal = now.getUTCSeconds();
var milliSecondsVal = now.getUTCMilliseconds();

if (moment(now).isDST()) {
  hoursVal = now.getUTCHours() + 1;
} else {
  hoursVal = now.getUTCHours();
}

var newDateValue = new Date(yearVal, monthVal - 1, dateVal, hoursVal, minutesVal, secondsVal, milliSecondsVal);

return newDateValue;
}

Выбор даты HTML

<mat-form-field>
    <input matInput [matDatepicker]="dp3" placeholder="Due Date" formControlName="issue_due_date" [(ngModel)]="dateBinding">
    <mat-datepicker-toggle matSuffix [for]="dp3"></mat-datepicker-toggle>
    <mat-datepicker #dp3 disabled="false"></mat-datepicker>
</mat-form-field>
0
задан 13 August 2018 в 13:34

0 ответов

Другие вопросы по тегам:

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