如何从MongoDB中的时间戳创建一个ISODate()?

问题描述:

我想从时间戳创建一个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

您的解决方案不起作用,因为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