如何操作 Firestore 提取的数据以将时间戳转换为日期
How to manipulate Firestore extracted data to convert timestamp to date
我正在尝试找到一种方法将从 Firestore 中提取的时间戳转换为常规日期。这是将查询结果存储在数组中的代码:
这是我在 myFirestoreDatabaseService
服务中的 getActiveItemsList()
函数:
getActiveItemsList() {
return this.afs.collection('GRD_active').valueChanges({idField: 'id'});
}
下面是我存储从 Firestore 返回的数据的实际代码:
this.myFirestoreDatabaseService.getActiveItemsList().subscribe(data => {
this.displayedDataSource = data;
});
GRD_active
集合中的文档字段之一是时间戳。因此,存储在 displayedDataSource 变量中的数据如下:
Screenshot
如何遍历存储在数组中的每个文档以仅将日期重新格式化为标准格式?换句话说,对数组中每个条目的所有 timeEntered
和 timeCompleted
字段执行某种数据操作,以便将它们转换为常规日期。
非常感谢您的支持
只需使用 rx 映射运算符映射数组:
return this.afs.collection('GRD_active').valueChanges({idField: 'id'}).pipe(
map(data => data.map(d => {
d.timeEntered = new Date(d.timeEntered.seconds * 1000);
d.timeCompleted = new Date(d.timeCompleted.seconds * 1000);
return d;
}))
);
时间以秒为单位存储为时间戳,因此只需乘以 1000 即可转换为毫秒并使用该值创建一个 JS 原生 Date 对象。
我正在尝试找到一种方法将从 Firestore 中提取的时间戳转换为常规日期。这是将查询结果存储在数组中的代码:
这是我在 myFirestoreDatabaseService
服务中的 getActiveItemsList()
函数:
getActiveItemsList() {
return this.afs.collection('GRD_active').valueChanges({idField: 'id'});
}
下面是我存储从 Firestore 返回的数据的实际代码:
this.myFirestoreDatabaseService.getActiveItemsList().subscribe(data => {
this.displayedDataSource = data;
});
GRD_active
集合中的文档字段之一是时间戳。因此,存储在 displayedDataSource 变量中的数据如下:
Screenshot
如何遍历存储在数组中的每个文档以仅将日期重新格式化为标准格式?换句话说,对数组中每个条目的所有 timeEntered
和 timeCompleted
字段执行某种数据操作,以便将它们转换为常规日期。
非常感谢您的支持
只需使用 rx 映射运算符映射数组:
return this.afs.collection('GRD_active').valueChanges({idField: 'id'}).pipe(
map(data => data.map(d => {
d.timeEntered = new Date(d.timeEntered.seconds * 1000);
d.timeCompleted = new Date(d.timeCompleted.seconds * 1000);
return d;
}))
);
时间以秒为单位存储为时间戳,因此只需乘以 1000 即可转换为毫秒并使用该值创建一个 JS 原生 Date 对象。