在 DataTable 中排序格式化日期 Angular

Sort formating date in DataTable Angular

我有我的 API 并且我使用 HTTP GET 获取它 我用我的模型投射我的信息 Alert 包含 Date 类型timestamp 如果我 运行 具有 Date 类型的 DataTable 我可以对列进行排序,但这里的问题是格式我得到以下格式

Mon Sep 03 2018 01:56:36 GMT-0700 (Pacific Daylight Time (Mexico))

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

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

注意:我使用 ng2-smart-table 作为数据表

不要格式化日期。让它作为时间戳并使用 valuePrepareFunction 将时间戳转换为格式化日期。

如果这已经是您正在做的,那么我可以看到排序使用的是准备好的值,而不是原始值。

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

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

根据documentation

您可以为任何字段声明预渲染函数valuePrepareFunction。 所以,你可以直接导入 DatePipe:

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

和 return new DatePipe('en-US').transform(date, 'your-format-here');valuePrepareFunction 声明中