У меня есть бронирования, и я хочу получить все выполненные бронирования, которые прошли (бронирования, которые < даты сейчас)
Я попытался отфильтровать бронирования по атрибуту оформления заказа в соответствии с датой, но это не сработало, он всегда отображал весь мой список бронирований.
Это моя Reservation модель:
export class Reservation {
id!: number;
nb!: number;
montantTotal!: number;
user!: User;
extra!: number;
couponon!: number;
nbrooms!: number;
montantExtraRoom!: number
dateCreated!: Date
vol!: Vol;
checkin!: Date;
checkout!: Date;
persones: Persone[] = [{
titre:'',
firstname:'',
lastname:'',
datebirth:'',
nationality:'',
passport:0,
country:'',
passworddateout:'',
}]
}
И это мой компонент:
export class UserMybookingComponent implements OnInit {
myres!: Reservation[]
myDate = new Date();
constructor(private reservationService: ReservationService, private datePipe: DatePipe ) {
}
ngOnInit() {
this.mybooking()
}
mybooking(){
this.reservationService.mybook().subscribe(
data => {this.myres=data;
this.myres.filter(res => new Date(res.checkout) > this.myDate)
}
)
}
}





Если вы хотите отобразить данные, попробуйте это
displayDate: any;
mybooking(){
this.reservationService.mybook().subscribe(
data => {this.myres=data;
this.myres.filter(res => new Date(res.checkout) > this.myDate)
this.displayDate = res;
}
)
}
поместите это в свой html-файл
{{displayDate?."index of the element you want to display goes here" | date:'fullDate'}}
чувак, я просто хочу отображать только те бронирования, которые завершены, а не сортировать их
вы использовали слово фильтр. Должен был сказать, что вы хотите отобразить данные, которые хранятся в res. Фильтр означает сортировку данных для получения значимой информации.
спасибо, бро, только сейчас заметил
пожалуйста, всегда используйте getTime() или valueOf() для точного сравнения дат (в миллисекундах)
new Date(res.checkout).getTime() > this.myDate.getTime()
Писать
this.myres = this.myres.filter(res => new Date(res.checkout) > this.myDate);
Вы забыли this.myres = ;
https://www.tutorialspoint.com/typescript/typescript_array_filter.htm
this.myres = this.myres.filter(res => новая дата(res.checkout) > this.myDate); Вы забываете 'this.myres ='