在DataTable Angular中对格式化日期进行排序

时间:2018-09-04 15:28:03

标签: angular ng2-smart-table

我有我的API,并且我使用HTTP GET来获取它,我使用模型 Alert 投射了信息,如果其中包含Date类型的时间戳,我使用Date类型运行DataTable可以对列进行排序,但是这里的问题是我正在获得以下格式的格式

  

2018年9月3日星期一01:56:36 GMT-0700(太平洋夏令时间(墨西哥))

当我尝试使用像09/03/2018 01:56:36这样的格式化日期时,如果我使用这种格式运行数据表,则排序将不起作用,因为它按 String 而不是 Date

我的问题是:如何将日期类型格式化为MM/DD/YYYY hh:mm:ss

注意:我使用ng2-smart-table作为Datable

2 个答案:

答案 0 :(得分:2)

按照documentation

您可以为任何字段声明预渲染功能valuePrepareFunction。 因此,您可以直接导入DatePipe:

import { DatePipe } from '@angular/common';

并在new DatePipe('en-US').transform(date, 'your-format-here');声明内返回valuePrepareFunction

答案 1 :(得分:1)

不格式化日期。让它作为时间戳,并使用valuePrepareFunction来转换格式化日期中的时间戳。

如果已经在执行此操作,那么我可以看到排序使用的是准备好的值,而不是原始值。

在这种情况下,排序时请使用compareFunction再次转换时间戳中的日期。

https://akveo.github.io/ng2-smart-table/#/documentation