Выходной объект, предоставленный из материала DatePicker, уже содержит всю необходимую информацию, вам нужно только правильно распечатать ее.
Попробуйте:
<h2 >Data from A: {{data.format("DD-MM-YYYY")}} </h2>
Вместо вашего:
<h2 >Data from A: {{ data }} </h2>
Просто чтобы быть уверенным, я проверил это на работающем проекте, и он работает правильно.
Редактировать:
Если вам нужно выполнить некоторую процедуру, когдадата изменяется, вам нужно настроить «слушатель» (dateChange) на входе datePicker, таким образом:
...
<input matInput [matDatepicker]="picker" [(ngModel)]= data (dateChange)="yourFunctionName($event.value)">
...
$ event.value имеет значение сохранения «data»Таким образом, в этот момент вы можете удалить данные [(ngModel)] = (которые устарели в Angular 6 )
Затем, когда слушатель настроен, вы можете создать функцию в вашемфайл машинописного текста, который обрабатывает изменение даты.
yourFunctionName(event: any) {
const data = event;
const formattedDate = data.getDate() + '-' + (data.getMonth() + 1) + '-' + data.getFullYear();
... do your operations with formattedDate ...
}
Теперь ваша дата правильно отформатирована и доступна в переменной "formattedDate".
Если вам нужен доступ к этим данным в вашем компоненте вне этой функции, вы можете объявитьвнешняя переменная (например, «данные»)вы уже создали) и ссылаетесь на нее внутри функции с помощью синтаксиса this.data
data: string;
yourFunctionName(event: any) {
...
this.data = data.getDate() + '-' + (data.getMonth() + 1) + '-' + data.getFullYear();
...
}
Вы можете безразлично форматировать дату, используя ".getDate ()" & friends или используя Moment.