首页 > 解决方案 > 如何在firebase中使服务器和客户端之间的时间戳相同?

问题描述

我有一个使用 firebase 云功能的反应应用程序。在客户端,我使用纯 javascriptDate.now()来获取客户端的本地时间(PST 时区)。

在服务器大小上,我也尝试使用相同的方法来获取时间戳,但它位于不同的时区。这将引入一个问题,如果 PST 时间是8:15pm 12/07/2019,那么它将是4:15am 12/08/2019,日期是不同的。

在这种情况下,如何保持客户端和服务器端的时间戳一致?谢谢!

标签: firebasegoogle-cloud-functions

解决方案


没有时区数据编码到 javascript Date 对象或 Firestore Timestamp 对象中。Date 对象用unix epoch time表示时间,它表示地球上所有人的特定时间点。(如果你还没有,一定要了解那是什么。)

您可能正在做的是打印日期的字符串表示形式,并且正在格式化主机配置的时区。由于您没有显示任何代码,因此无法确定,但 Dates 没有时区是事实。

如果要格式化具有特定时区的日期,则应使用日期格式化库,该库可让您指定应以字符串格式表示的时区。


推荐阅读