使用javascript在mongodb中存储日期

时间:2014-05-25 05:14:10

标签: javascript mongodb date

在MEAN堆栈上尝试使用mongodb和javascript。在处理日期时我遇到了一个问题,所以我有兴趣听听别人如何处理这种情况。

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

  • 出生日期”是不言自明的。提交给用户时,此日期应始终相同。
  • 帐户创建”会保留创建帐户时的日期/时间戳。用户永远不会将此视为内部应用程序使用。
  • 上次访问”向用户显示上次使用该应用程序时的日期/时间戳。

现在如果我将所有这些日期保存为mongodb中的普通Javascript日期对象,它们将保存为UTC。接下来就是:

  1. 出生日期”如果在重新计算为UTC时呈现给用户,则不再正确。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

你可能做了什么:

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

并且将时区差异计算为生成的日期。

你想做什么:

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

这正是UTC格式。

因此,请确保在创建时记录UTC格式等内容。