gpt4 book ai didi

javascript - 如何在 Firebase firestore db 中使用正确的时区保存 future 的到期日期

转载 作者:行者123 更新时间:2023-11-30 13:55:42 25 4
gpt4 key购买 nike

我正在尝试将一个属性保存到名为“expiration”的 Firebase 文档中。这将是 future 设定的日期,我将在前端检查并查看 Date.now 是否晚于到期日期,如果是,那么我将在 UI 中渲染一个图形来描述它是一个“已过期” “文档。

我尝试将其保存为字符串,但之后我将无法利用带有日期的 firebase 查询功能。如何将此设置为东部时区的 future 日期?

let splitDate = game.gameDate.split("-").map(Number);
let splitTime = game.gameTimeET.split(" ");
let hours = splitTime[0].split(":").map(Number);
let meridian = splitTime[1];
if (meridian === "PM") {
hours[0] = hours[0]+16
}
let dateString = new Date(splitDate[0], splitDate[1]-1, splitDate[2], hours[0], hours[1]).toLocaleString("en-US", {timeZone: "America/New_York"});

pollDoc.update({
expires: dateString
});

日期被保存为字符串。如果我在运行 toLocaleString 之前只保存日期对象,它会使用不正确的时区保存日期。如何将其保存到 Firebase 数据库中的 EST 时区?

最佳答案

就像 unix 纪元时间整数一样,Cloud Firestore 不使用时间戳对象保存时区信息。它们始终以 UTC 格式存储。如果您在控制台中看到时区,那只是呈现给本地计算机配置的时区的时间戳。

时区代表地球上所有人的时间点。如果您需要解释该时间戳以呈现 UI 的日期或时间,则需要自行格式化。如果您需要处理手动输入时间戳的人,则需要将他们的时区概念转换为 UTC 以正确存储。

如果您使用 JavaScript,您可能会找到库 moment有帮助。

关于javascript - 如何在 Firebase firestore db 中使用正确的时区保存 future 的到期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57352486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com