primeng: пользовательский сортировка p-таблицы для формата даты DD.MM.YYYY HH: mm

76
15

Я работаю над angular4 и primeng <p-table>. В моем коде есть таблица, которая отображает столбец courseComplete. В courseComplete отображается формат даты как DD.MM.YYYY HH:mm который мне нужно отсортировать. Я реализовал пользовательский сортировку, но сортировка не работает должным образом.

В восходящем порядке данные поступают как: (кажется, что время не сортируется правильно)

29.06.2018 03:11
29.06.2018 01:57
01.07.2018 05:35

Пожалуйста, направляйте меня, где я ошибался при сортировке. Ниже мой код: (на данный момент дата в формате строки, если тип будет изменен? Я также использую разбиение на страницы, может это проблема?)

<p-table [columns]="cols" [value]="course" (sortFunction)="customSort($event)" [customSort]="true">
<ng-template pTemplate="header" let-columns>
<tr>
<th *ngFor="let col of columns" [pSortableColumn]="col.date">
Course Completed On
<p-sortIcon [field]="col.date"></p-sortIcon>
</th>
</tr>
</ng-template>
</p-table>

customSort(event: SortEvent) {
event.data.sort((data1, data2) => {
let value1 = data1[event.field];
let value2 = data2[event.field];
let result = null;

if (value1 == null && value2 != null)
result = -1;
else if (value1 != null && value2 == null)
result = 1;
else if (value1 == null && value2 == null)
result = 0;
else if (typeof value1 === 'string' && typeof value2 === 'string')
result = value1.localeCompare(value2);
else
result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;

return (event.order * result);
});
}

спросил(а) 2018-07-13T09:23:00+03:00 1 год, 7 месяцев назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема