格式化来自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);