fgu*_*spe 4 javascript firebase reactjs google-cloud-firestore
我意识到绝对有0文档有关如何在响应中解析Firebase / firestore时间戳。
如此处所示 https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp
Firebase中的时间戳由秒和毫秒组成。
var newobj={
uid_to:'K365J32fddel3QTxGG94VksXtQP2',
uid_from:'RqVngIRyiJV2XTogLSONZIqoe5h1',
monto:23,
fecha:new Date(),
user:{
from_name:"fabri"
},
status:'pending'
}
firestore.collection('transacciones').add(newobj);
}
Run Code Online (Sandbox Code Playgroud)
然后在控制台中显示为
当我进行查询时会带来这个
Object {
"fecha": Timestamp {
"nanoseconds": 960000000,
"seconds": 1526130923,
},
"monto": 23,
"status": "pending",
"uid_from": "RqVngIRyiJV2XTogLSONZIqoe5h1",
"uid_to": "K365J32fddel3QTxGG94VksXtQP2",
"user": Object {
"from_name": "fabri",
},
}
Run Code Online (Sandbox Code Playgroud)
如何将其解析为简单日期或再次为datetime?
Ste*_*rey 11
我也为此苦苦挣扎,因为我在 SO 或其他任何地方都没有找到答案,这是我通过反复试验得到的解决方案。为了完整起见,我将时间戳字段保存到文章集合中:
saveArticle() {
firebase.firestore().collection('articles').add({
title: this.state.title,
createdAt: firebase.firestore.FieldValue.serverTimestamp(),
})
}
Run Code Online (Sandbox Code Playgroud)
然后要显示日期,您需要调用对象的 toDate() 方法,将其转换为 JavaScript Date 对象,然后将其转换为日期字符串。所以在渲染中我有以下内容。希望这可以节省一些时间。
<Text>{new Date(this.state.article.createdAt.toDate()).toDateString()}</Text>
Run Code Online (Sandbox Code Playgroud)
只需调用.toDate()firestore时间戳对象即可将其转换为JS日期对象。
所以对你来说就像object.fecha.toDate()。然后,您可以使用它来比较日期或使用任何其他日期方法。您也可以将其传递到瞬间。
您不一定需要serverTimestamp()使用方法来设置时间,使用new Date()就可以了。
| 归档时间: |
|
| 查看次数: |
2108 次 |
| 最近记录: |