如果我打印new Date()
,我将收到基于特定时区的日期和小时。
和时区不同:)
这意味着输出将在不同的地方出现。
我考虑过这种在数据库中保存日期的结构:
{
date: {
text: "08-10-2018",
timestamp: THE_TIME_STAMP
}
}
然后将时间戳转换为日期和时间。
我不希望每个用户都看到创建者时区的创建日期-我希望每个用户都根据自己的时区看到创建日期。
我的问题是我应该在数据库中保存什么? 我应该改用时间戳记吗? 时间戳会与用户的时区匹配吗? 这里的最佳做法是什么?
答案 0 :(得分:0)
不将日期/时间存储在字符串中。这总是一个坏主意。
MongoDB具有其驱动程序支持的内置Date类型。它将以ISODate
格式存储日期。如果您有一个nodejs后端,则只需提供JS date对象,驱动程序便会处理所有事情。
您可以查询数据的日期范围,如果将其存储为字符串,则无法正确执行。
您可以在前端将UTC ISODate转换为查看者的时区。
如果您有基于js的前端,则可以使用luxon或moment.js转换为不同的时区。