在 angular 类型脚本中收到查询结果后将纪元时间转换为时间字符串
convert epoch time to time string upon receiving query result in angular type script
这是我面临的问题:
我有一个 angular 脚本来查询后端服务并获取查询结果以显示给用户。
查询响应中的字段之一是时间戳,当前是纪元时间,例如1637726700094
此时间戳将作为 table 列显示在 html 页面中,理想情况下我可以将其转换为
日期字符串。我设法通过使用 | 完成了这个转换日期。现在它显示为人类可读的日期字符串。
问题是,我还有一个过滤器允许用户 select 显示某些行。
理想情况下,用户可以键入例如2021 年 11 月 26 日 2:05:00 下午,过滤器将显示某些记录。但是它不起作用,因为过滤器仍然在纪元时间工作,纪元时间是 table 的数据源,而不是转换后的数据。
理想情况下,我可以解析数据源并创建一个包含数据字符串的新数据源,这样搜索就可以了。我可以搜索 11 月 26 日,或 2:05,或 2:05:00,所有这些都基于文本。
而不是
return this.http.get<data[]>(this.url, { params});
有没有办法处理 return 之前的数据[](将纪元时间戳转换为时间字符串)以显示脚本?
这是我在代码中使用的最终解决方案:
).subscribe(rawData => {
const newData: NewData[] = rawData.map( (datum) =>
{
return {
timeStamp: this.datePipe.transform(datum.timeStamp, 'yyyy MMM dd HH:mm:ss'),
name: datum.name,
status: this.showStatusStr(datum.status)
};
});
this.newDataSource = new MatTableDataSource(newData);
this.newDataSource.paginator = this.paginator;
this.hcDataSource.sort = this.sort;
console.log(newData);
console.log(this.newDataSource);
});
如果您将日期管道注入到您想要执行此操作的代码中,
您可以映射数组,并为每个值调用管道的 transform
方法,例如
const data: Data[] = this.response.map( (datum) =>
{
return {
date: this.datePipe.transform(datum.epoch),
name: datum.name,
status: dataum.status
};
}
);
这是我面临的问题: 我有一个 angular 脚本来查询后端服务并获取查询结果以显示给用户。 查询响应中的字段之一是时间戳,当前是纪元时间,例如1637726700094
此时间戳将作为 table 列显示在 html 页面中,理想情况下我可以将其转换为 日期字符串。我设法通过使用 | 完成了这个转换日期。现在它显示为人类可读的日期字符串。
问题是,我还有一个过滤器允许用户 select 显示某些行。 理想情况下,用户可以键入例如2021 年 11 月 26 日 2:05:00 下午,过滤器将显示某些记录。但是它不起作用,因为过滤器仍然在纪元时间工作,纪元时间是 table 的数据源,而不是转换后的数据。
理想情况下,我可以解析数据源并创建一个包含数据字符串的新数据源,这样搜索就可以了。我可以搜索 11 月 26 日,或 2:05,或 2:05:00,所有这些都基于文本。
而不是
return this.http.get<data[]>(this.url, { params});
有没有办法处理 return 之前的数据[](将纪元时间戳转换为时间字符串)以显示脚本?
这是我在代码中使用的最终解决方案:
).subscribe(rawData => {
const newData: NewData[] = rawData.map( (datum) =>
{
return {
timeStamp: this.datePipe.transform(datum.timeStamp, 'yyyy MMM dd HH:mm:ss'),
name: datum.name,
status: this.showStatusStr(datum.status)
};
});
this.newDataSource = new MatTableDataSource(newData);
this.newDataSource.paginator = this.paginator;
this.hcDataSource.sort = this.sort;
console.log(newData);
console.log(this.newDataSource);
});
如果您将日期管道注入到您想要执行此操作的代码中,
您可以映射数组,并为每个值调用管道的 transform
方法,例如
const data: Data[] = this.response.map( (datum) =>
{
return {
date: this.datePipe.transform(datum.epoch),
name: datum.name,
status: dataum.status
};
}
);