如何在cloud函数或nodejs中转换firestore TimeStamp



大家好,我正在构建一个带有express, node和firebase云功能的restAPI,它成功地从我的集合中返回文档。但我的问题是我返回每个文档创建为JSON的日期,但我无法将时间戳日期转换为javascript日期.....下面是我的代码:

// Single report route that accepts a report ID and return the report
app.get('/report/:id', async (req, res) => {
try {
let report;
const reportDoc = await admin.firestore().collection('corruptionReports/').doc(req.params.id).get();
if (reportDoc.exists) {
let reportDate = reportDoc.data().createdAt;
report = {
id: reportDoc.id,
createdAt: reportDate.toMillis(),
...reportDoc.data()
}
return res.status(200).json(report)
} else {
return res.status(500).json({
"status": "failed",
"message": "invalid report ID"
})
}
} catch (error) {
return res.status(500).json({
"status": "failed",
"message": "invalid report ID"
})
}
})
在上面的代码中,我基本上想以毫秒为单位返回带有服务器时间戳的文档。

Firestore时间戳非常有用,但转换或比较起来有点麻烦。以下是我在云函数中使用的代码,用于从Firestore时间戳获取Javascript日期:

var createdAt = new Date(reportDate._seconds * 1000);

其中reportDate是Firestore时间戳字段,与示例代码中相同。

reportDate.toDate().toLocaleDateString('en-US')

确切的日期格式,阅读更多:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

相关内容

  • 没有找到相关文章

最新更新