在Mongodb中,我以ISODate格式存储日期和时间。
看起来像这样
ISODate("2012-07-14T01:00:00+01:00")
使用nodejs / javascript,如何显示时间组件,以便我得到类似这样的内容
Time : 01:00
我正在使用momentjs来使这更容易,但从我所知道的事情看来似乎支持ISODate格式。
谢谢你的帮助。
答案 0 :(得分:30)
MongoDB的ISODate()只是一个帮助函数,它包装了一个JavaScript日期对象,并且更容易使用ISO日期字符串。
您仍然可以使用所有same methods as working with a normal JS Date,例如:
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()
答案 1 :(得分:27)
JavaScript的Date对象支持ISO日期格式,因此只要您有权访问日期字符串,就可以执行以下操作:
> 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)'
如果你想要没有秒和时区的时间字符串,那么你可以在Date对象上调用getHours()和getMinutes()方法并自己格式化时间。
答案 2 :(得分:1)
你可以像这样使用mongo查询 yearMonthDayhms:{$ dateToString:{格式:“%Y-%m-%d-%H-%M-%S”,日期:{$减法:[“$ cdt”,14400000]}}}
HourMinute:{$ dateToString:{格式:“%H-%M-%S”,日期:{$减法:[“$ cdt”,14400000]}}}
答案 3 :(得分:1)
// 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);