Я использую следующий фрагмент, чтобы обновить документ в 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>