primeng:p表的日期格式DD.MM.YYYY自定义排序HH:mm

时间:2018-07-13 06:23:05

标签: angular sorting primeng

我正在研究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);
        });
    }

0 个答案:

没有答案