我正在尝试从 firestore 获取时间戳值(使用 Firebase 函数),并且我已经使用时间戳的 toDate() 方法和矩库在本地成功完成了此操作。
moment(doc.data().EndDate.toDate())
但是,当我将代码部署到 firebase 并测试该函数时,toDate() 返回的日期比 firebase 上保存的时间戳少 1 小时。我想它正在将我的日期转换为 UTC,因为我处于 UTC+1,并且时间戳也与 UTC+1 一起存储在 firestore 中,但我不知道如何可靠地获取时间戳日期,就像在 firestore 中一样,与时区无关。
如果有人知道为什么会发生这种情况或知道如何解决它,那就太好了。
Firestore 中的所有时间戳均以 UTC 格式存储。如果您在 Firebase 控制台中看到不同的内容,那只是您的浏览器将其格式化为您的本地时区。
在 JavaScript 中,所有 Date 对象也以 UTC 表示。如果将其格式化为字符串,您可能会再次根据本地时区获得不同的表示形式。
如果您编写使用日期或时间戳计算值的代码,您应该使用 UTC 执行所有计算。这几乎是所有计算系统都想要处理的日期。当需要格式化日期以向最终用户显示时,只有这样您才应该考虑时区,并根据用户的偏好呈现一些内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)