在Mongodb中,我使用ISODate格式存储日期和时间。格式化来自Mongodb的ISODate
它看起来像这样
ISODate("2012-07-14T01:00:00+01:00")
使用的NodeJS/JavaScript的,我怎么能显示时间分量,所以我会得到这样的事情
Time : 01:00
我使用momentjs使它更容易些,但从我可以告诉的是,momentjs确实似乎支持ISODate格式。
感谢您的帮助。
在Mongodb中,我使用ISODate格式存储日期和时间。格式化来自Mongodb的ISODate
它看起来像这样
ISODate("2012-07-14T01:00:00+01:00")
使用的NodeJS/JavaScript的,我怎么能显示时间分量,所以我会得到这样的事情
Time : 01:00
我使用momentjs使它更容易些,但从我可以告诉的是,momentjs确实似乎支持ISODate格式。
感谢您的帮助。
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()方法,并自己设置时间。
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()
// 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);
我使用了momentjs来完成格式化,但是必须先通过getFullYear,getMonth,getDate,getHours和getMinutes从日期对象中提取它,就像你说的那样。 – jamjam 2012-07-15 18:26:11
不要使用Date构造函数解析字符串,它在实现中非常不一致。虽然ISO格式是在ES5中指定的,但并非所有使用的浏览器都支持它,并且在处理方式上存在不一致之处。例如。应将“2012-07-14T01:00:00 + 01:00”解析为本地字符串(即使用系统时区设置),但“2012-07-14”应解析为UTC。 – RobG 2016-02-09 21:11:26