Я создал пользовательский канал, в котором я делаю год частью даты как константу для всех дат, а затем сопоставляю их время, чтобы получить даты в порядке возрастания. Date.getTime () даст миллисекунды, прошедшие с 1 января 1970 года (если у нас есть даты до этой точки, то она будет отрицательной). Так как год сопоставленных дат имеет год "2000", все они будут давать getTime () в положительных миллисекундах.
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'sortDate'
})
export class SortDatePipe implements PipeTransform {
transform(value: any, args?: any): any {
return value.sort((a, b) => {
let firstDate = new Date(a);
let secondDate = new Date(b);
firstDate.setFullYear(2000);
secondDate.setFullYear(2000);
if (firstDate.getTime() < secondDate.getTime()) {
return -1
}
return 1
})
}
}
https://stackblitz.com/edit/angular-hsdkau?file=src%2Fapp%2Fapp.component.html