Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从新的`firebase.firestore.FieldValue.serverTimestamp()获取JavaScript日期对象`_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

如何从新的`firebase.firestore.FieldValue.serverTimestamp()获取JavaScript日期对象`

如何从新的`firebase.firestore.FieldValue.serverTimestamp()获取JavaScript日期对象`,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,最近Firebase Firestore,我无法从时间戳中检索date对象 如何从新的firebase.firestore.FieldValue.serverTimestamp()获取日期对象?您只需执行以下操作: yourFirestoreTimestamp.toDate() 如果查看控制台中的时间戳对象,您将看到.toDate()是默认情况下每个时间戳上可用的函数 -- 但是,请注意,当您尚未与Firestore同步时 FieldValue.serverTimestamp()不提供任何值

最近Firebase Firestore,我无法从时间戳中检索
date
对象


如何从新的
firebase.firestore.FieldValue.serverTimestamp()获取日期对象?

您只需执行以下操作:

yourFirestoreTimestamp.toDate()
如果查看控制台中的
时间戳
对象,您将看到
.toDate()
是默认情况下每个
时间戳
上可用的函数

--

但是,请注意,当您尚未与Firestore同步时
FieldValue.serverTimestamp()
不提供任何值

只有在您与Firestore同步并再次获取数据后,道具才会从
serverTimestamp
→ 到时间戳

您还将看到
时间戳
对象中保存的更多信息:

只返回一个sentinel对象,在将字段写入文档时使用该对象。它指示服务器应使用实际对象替换它
serverTimestamp()
本身不包含任何日期信息,您无法将其转换为日期


当您将sentinel值写入文档并将其读回时,它将成为一个类型对象,您可以使用它的方法将其转换为本机日期对象。最后,我可以得到我需要的

new Date(firebase.firestore.Timestamp.now().seconds*1000).toLocaleDateString()

这不适用于返回值
firebase.firestore.FieldValue.serverTimestamp()
,它不是时间戳类型的对象。返回的sentinel值只有在文档值实际写入文档后才会成为时间戳,正如我在这里的回答中所描述的那样。@DougStevenson感谢您提供的信息。我已经更新了我的答案,将这些信息包含在你的评论中。谢谢。我必须在
seconds
键中添加一个下划线(
\uuu
),以使其工作:
新日期(firebase.firestore.Timestamp.now()。\u seconds*1000)。toLocaleDateString()