【问题标题】:Date column sort is not working in Primeng <p-table>日期列排序在 Primeng <p-table> 中不起作用
【发布时间】:2019-01-11 05:01:52
【问题描述】:

我有一个使用 Primeng 来显示表格值的表格。 在表格中有一个日期列,对于日期,排序选项不起作用。 它被视为普通字符串值而不是日期。

从服务获取时间戳格式的日期。在 UI 中使用以下代码将日期转换为所需格式。

import { DatePipe } from '@angular/common';
constructor(private datePipe: DatePipe) {
}



dateFormat(val: any) {
    if (val.toString().indexOf('.') > 0) {
      return this.datePipe.transform(new Date(val * 1000), 'd-MMM-y');
    } else {
      val = val.toString() + '.0000';
      return this.datePipe.transform(new Date(val * 1000), 'd-MMM-y');
    }
  }

【问题讨论】:

  • 能否提供样本数据?

标签: angular primeng primeng-datatable


【解决方案1】:

您可以设置一个字段显示日期

this.data.forEach(ds => {
      ds.display_year = this.dateFormat(ds.year);
});

但在真实字段上排序(date 类型)

这是demo

【讨论】:

  • 谢谢@phucnh,在演示中,日期列值采用时间戳格式,但在我的代码中,日期列值采用字符串格式,例如 ''24-Jan-2018"
  • 您的回复类型是什么?
  • 响应类型为 Json
  • 解决了使用 Primeng 文档中给出的 自定义排序。将日期类型从字符串转换为有效的日期类型
【解决方案2】:

您是否尝试过在 ' 列中使用日期管道:{{your_date | date: 'dd/MM/yyyy'}}

【讨论】:

    猜你喜欢
    • 2018-12-07
    • 2018-12-09
    • 2018-12-11
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    • 2018-11-11
    • 1970-01-01
    相关资源
    最近更新 更多