格式化来自Mongodb的ISODate

在Mongodb中,我以ISODate格式存储date和时间。

看起来像这样

ISODate("2012-07-14T01:00:00+01:00") 

使用nodejs / javascript,我怎样才能显示时间组件,所以我会得到这样的东西

 Time : 01:00 

我正在使用momentjs使这更容易,但从我可以告诉momentjs似乎支持ISODate格式。

感谢您的帮助。

JavaScript的Date对象支持ISOdate格式,所以只要你有权访问datestring,你可以做这样的事情:

 > foo = new Date("2012-07-14T01:00:00+01:00") Sat, 14 Jul 2012 00:00:00 GMT > foo.toTimeString() '17:00:00 GMT-0700 (MST)' 

如果你想要时间string没有秒和时区,那么你可以调用Date对象的getHours()和getMinutes()方法,并自己格式化时间。

MongoDB的ISODate()只是一个帮助函数,它封装了一个JavaScriptdate对象,并使得它更容易处理ISOdatestring。

您仍然可以像使用普通JSdate一样使用所有相同的方法 ,例如:

 ISODate("2012-07-14T01:00:00+01:00").toLocaleTimeString() // Note that getHours() and getMinutes() do not include leading 0s for single digit #s ISODate("2012-07-14T01:00:00+01:00").getHours() ISODate("2012-07-14T01:00:00+01:00").getMinutes() 

你可以使用像这样的yearMonthDayhms的mongo查询:{$ dateToString:{format:“%Y-%m-%d-%H-%M-%S”,date:{$ subtract:[“$ cdt”,14400000] }}}

HourMinute:{$ dateToString:{format:“%H-%M-%S”,date:{$ subtract:[“$ cdt”,14400000]}}}

在这里输入图像描述

 // from MongoDate object to Javascript Date object var MongoDate = {sec: 1493016016, usec: 650000}; var dt = new Date("1970-01-01T00:00:00+00:00"); dt.setSeconds(MongoDate.sec);