2016-05-31 80 views
0

我想從時間戳創建一個ISODate(),但我無法。如何從MongoDB中的時間戳創建一個ISODate()?

我的意思是,想象你想獲得當前日期少7天,然後我會做什麼是一樣的東西

ISODate(ISODate().getTime() - 1000 * 3600 * 24 * 7).toISOString().substring(0,10) 

而且它是好的,但是我得到1464年10月23日這樣..

我試圖做到這一點沒有new Date()

這對我來說很重要,因爲它是我能做的查詢的唯一方式(我在數據庫上有dd/mm/yyyy字符串日期)以及我認識的聚合非常初學者在mongo)

+0

爲什麼您首先在數據庫中使用字符串而不是日期對象? – str

+0

可能[moment.js](http://momentjs.com/docs/)會幫助你。查看文檔以瞭解如何使用它。 – Shrabanee

+0

這就是我在一個我正在工作的項目中得到的東西,我當然知道它根本不是一個好的格式。...... – ackuser

回答

0

您的解決方案不起作用,因爲ISODate構造函數只接受一個字符串參數,而不是時間戳。但是,您可以在外殼改用Date:在外殼

> new Date((new Date()).getTime() - 1000 * 3600 * 24 * 7).toISOString().substring(0,10) 
2016-05-24 

Date對象由ISODate包裹着,所以這應該還是能在任何你想要做的工作。

> new Date((new Date()).getTime() - 1000 * 3600 * 24 * 7) 
ISODate("2016-05-24T15:31:48.335Z") 
+0

我知道如何從新日期得到它,我的觀點是如何讓它在聚合中工作,所以據我所知我需要將它包裝到ISODate中......我想我已經解決了它,儘管我是我的執行不是很滿意..謝謝我的欣賞 – ackuser

+1

嗯......我不明白這兩件事有什麼關係。如第二個例子所示,'Date'和'ISODate'在shell中是一樣的。 – JohnnyHK