我只想要專家的確認。 對於我認爲是在這樣的環境中存儲和處理日期的正確方式,我仍然沒有自信。在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