Estoy tratando de comparar fechas en mi aplicación usando ngIf, pero hasta ahora no he podido hacer que funcione correctamente.
<div *ngIf="(todaysdate | date:'MMM dd' == duedate | date:'MMM dd')"> List </div>Quiero compararlos usando la tubería de fecha porque los tiempos en la cadena de fecha completa son diferentes. Solo quiero comparar las fechas. Cualquier sugerencia sobre cómo hacer esto correctamente es muy apreciada.
Compare funciona bien cuando formatea sus fechas correctamente (por ejemplo, 20191224 para navidad). Así que esto debería funcionar
<div *ngIf="(todaysdate | date:'yMMdd' == duedate | date:'yMMdd')"> List </div>La solución más rápida es this.todaysdate.setHours(0, 0, 0, 0); lo que haría en su fecha anterior en su constructor.
Pero también puede enviarlo a una expresión en el componente *ngIf="compareDates()"
compareDates(){ return this.todaysdate.setHours(0, 0, 0, 0) == this.duedate.setHours(0, 0, 0, 0); }Un poco más, pero esto es lo que hice en función de la respuesta para comparar las fechas de vencimiento. Además, "expireDate" vino como un objeto que no podía comparar simplemente por dos objetos de fecha.
.ts
today = new Date();.html
<div *ngIf="(expireDate | date: 'yMMdd') > (today | date: 'yMMdd'); else template_Expired"> {{ expireDate | date }} </div> <ng-template #template_Expired> <div class="expired"> {{ expireDate | date }} </div> </ng-template>.css
.expired { font-weight: bold; color: red; }