gpt4 book ai didi

javascript - 使用javascript在mongodb中存储日期

转载 作者:行者123 更新时间:2023-12-03 12:33:00 26 4
gpt4 key购买 nike

在 MEAN 堆栈上尝试 mongodb 和 javascript。我在处理日期时遇到了一个问题,因此我有兴趣听听其他人如何解决这种情况。

假设我想在 mongodb 中存储三个日期,“出生日期”、“帐户创建”日期和“上次访问”日期。

  • 出生日期”是不言自明的。该日期在呈现给用户时应始终相同。
  • 帐户创建”保留创建帐户时的日期/时间戳。用户永远不会看到它,因为它用于内部应用程序使用。
  • 上次访问”向用户显示上次使用该应用程序时的日期/时间戳。

现在,如果我将所有这些日期保存为 mongodb 中的普通 Javascript 日期对象,它们将保存为 UTC。随后发生以下情况:

  1. 出生日期”如果呈现给用户,则不再正确,因为它是根据 UTC 重新计算的。

  2. 帐户创建”是可以的,因为只要其一致的 UTC,它就会在内部使用。

  3. 上次访问”如果呈现给用户,则不再正确,因为它已重新计算为 UTC。

因此面临着试图避免将日期存储为字符串但同时又不愿意与时区复杂性作斗争的困境。在捕获、存储和呈现日期方面,处理这种情况的最佳折衷方案是什么?

最佳答案

所有日期创建并不相同。一个例子:

你可能做了什么:

new Date("2014/01/01")
ISODate("2014-01-01T13:00:00Z")

这将时区差异考虑到了生成的日期中。

你想做什么:

new Date("2014-01-02")
ISODate("2014-01-02T00:00:00Z")

完全采用 UTC 格式。

因此,请确保在创建此类内容时将其记录为 UTC 格式。

关于javascript - 使用javascript在mongodb中存储日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23852251/

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