我正在构建一个应用程序来为研究提供文档。我正在构建的实用程序之一是计数器,用于跟踪某些实验。
现在,这个函数可以工作,但我唯一的问题是时间不准确。当我设置一个新的计数器时,我在正(T+)计数器上得到+1天+1小时的偏移,而负(T-)计数器是精确的。
如何将firebase时间戳转换为本地时区以使其可用?
代码如下:
const now = new Date().getTime();
const distance = date - now;
const days = Math.abs(Math.floor(distance / (1000 * 60 * 60 * 24)));
const hours = Math.abs(Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)));
const minutes = Math.abs(Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)));
const seconds = Math.abs(Math.floor((distance % (1000 * 60)) / 1000));发布于 2020-07-30 10:44:31
正计数器中的偏移量由完成数学运算的方式生成。
通过将const distance = date - now;更改为const distance = now - date;,它会得到修复。
发布于 2020-07-30 10:28:24
Firebase/Google SDK不提供任何本地化时间戳的方法。这完全由您决定。
时间戳(如JavaScript Date对象)始终在内部以协调时表示。您可以做的是在时间戳对象上使用toDate()方法将其转换为Date对象。在此之后,您可以选择将其格式化为包含所需时区的内容。momentjs通常用来做这件事。
再一次明确地说,在时区格式的字符串之间来回转换是应用程序的责任。Firestore的职责是在文档的字段中及时加载并存储该时刻,它使用UTC表示法来实现这一点,这在所有主流操作系统中都很常见。
https://stackoverflow.com/questions/63165161
复制相似问题