在MEAN堆栈上尝试使用mongodb和javascript。在处理日期时我遇到了一个问题,所以我有兴趣听听别人如何处理这种情况。
假设我想在mongodb中存储三个日期,“出生日期”,“帐户创建”日期和“上次访问”日期。
现在如果我将所有这些日期保存为mongodb中的普通Javascript日期对象,它们将保存为UTC。接下来就是:
“出生日期”如果在重新计算为UTC时呈现给用户,则不再正确。
“帐户创建”是可以的,因为只要它在UTC内部使用它就会在内部使用。
“上次访问”如果在重新计算为UTC时呈现给用户,则不再正确。
因此面临着试图避免将日期存储为字符串但同时又不愿意与时区复杂性作斗争的困境。在捕获,存储然后呈现日期方面,处理这种情况的最佳折衷方案是什么?
答案 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格式等内容。