我做new Date()
然後將它保存到mongodb中,日期成爲UTC格式?datetime UTC轉換mongodb
我在插入mongodb時插入的日期時間不一樣,我該怎麼做才能解決這個問題?就像我在2016年1月12日創建文檔一樣,我選擇範圍從2016年1月12日開始,該記錄不存在。奇怪。
我做new Date()
然後將它保存到mongodb中,日期成爲UTC格式?datetime UTC轉換mongodb
我在插入mongodb時插入的日期時間不一樣,我該怎麼做才能解決這個問題?就像我在2016年1月12日創建文檔一樣,我選擇範圍從2016年1月12日開始,該記錄不存在。奇怪。
正如documentation說:
蒙戈殼包覆與ISODate幫手Date對象。 ISODate使用UTC。
所以我最好的猜測是你的new Date()
不是UTC。
Math.floor((new Date()).getTime()/1000)
爲在這裏看到:How do I get a UTC Timestamp in JavaScript?
然而,蒙戈是足夠聰明,解決這一切爲你,所以new Date()
應該夠了。
要在mongo中查詢日期,您還可以使用純日期對象,而不需要將它們轉換爲ISOString。
將所有內容保留爲日期對象,並且它將按照您的意圖工作!
node.js new Date()對象的默認時區爲UTC(又名GMT)。
你應該這樣離開它,只是把它轉換到你的前端。瀏覽器中的Javascript可以自動將UTC時間戳轉換爲瀏覽器本地時區。
new Date(Date.UTC(saved-timezone))
How do you create a JavaScript Date object with a set timezone without using a string representation
所以基本上我不能做新的日期(),但Date.UTC(保存時區),如果我想使用mongodb? –
您總是希望以UTC保存日期,並在檢索後將它們轉換爲本地時區。只要將其保留爲UTC,並使用上面的代碼將時間轉換爲檢索後的本地時區。 – Porlune
檢索後轉換前端的時間? –
所以基本上我不能做新的日期(),但Date.UTC(保存時區),如果我想使用mongodb? –
雖然你不應該需要這個,但Mongo很聰明,可以爲你整理一切。你能告訴我們你插入的內容,以及mongo文檔中寫的是什麼? – xShirase
如果是這種情況,爲什麼我應該有這個奇怪的錯誤? –