如何从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)
答
您的解决方案不起作用,因为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")
为什么您首先在数据库中使用字符串而不是日期对象? – str
可能[moment.js](http://momentjs.com/docs/)会帮助你。查看文档以了解如何使用它。 – Shrabanee
这就是我在一个我正在工作的项目中得到的东西,我当然知道它根本不是一个好的格式。...... – ackuser