我只想要专家的确认。 对于我认为是在这样的环境中存储和处理日期的正确方式,我仍然没有自信。在MongoDB中存储日期和时区
我正在开发一个小应用程序,只为意大利用户。
基本上,他们可以创建项,每一个都具有creationDate的列表(我在日期部分有兴趣,时间是不是在我的情况下非常有用)。
所以,用户在“日期”形式字段中输入以下格式的日期:22/06/2014代表六月的第22天的2014年之后的日期被解析这样的:
entryData.dateEntry = moment($(form).find('input[name=dateEntry]').val(), 'DD-MM-YYYY').toDate();
最后,我的入口模型被添加到backbone.js集合中,并通过Node.js + Express在MongoDB中存储服务器端。
查询Mongo的条目,我看到:
2014年6月21日22:00:00 +0000
相当于 “dateEntry”:日期(14033.88亿)。
谷歌搜索,我发现MongoDB没有时区的概念。所有日期都以UTC格式存储,而我之前创建的日期对象格林尼治标准时间+2。 但我真的很害怕......我怎样才能以简单的方式取回当地时区的日期?
接下来,我将在下划线模板显示条目数据,这种方式:
<%= moment(dateEntry).format('DD/MM/YYYY') %>
而且......瞧!我把我当地的'意大利'的约会回来了:22/06/2014。
现在,我的问题:是正确的路要走吗?
该过程是:解析本地时区中的日期=>存储在utc =>检索本地时区中的日期。 这是常见的做法吗?
我也想过:我不能简单地避免使用时区和存储我的本地(意大利)时间,因为它是utc时间(2014-06-22 00:00:00)? 那么糟糕?
我设置好一切是UTC前后(数据库,服务器,客户端通信,...),在应用程序的最边缘处理的时区。我通常在Rails中工作,所以我不知道node.js世界中通常会做些什么。 – 2014-08-31 19:52:44