格式化Mongodb中的ISODate

fumotvh3  于 2022-11-03  发布在  Go
关注(0)|答案(4)|浏览(150)

在Mongodb中,我以ISODate格式存储日期和时间。
它看起来像这样

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

使用nodejs/javascript,我如何显示时间组件,以便得到如下所示的内容

Time : 01:00

我使用momentjs来简化这一过程,但据我所知,momentjs似乎确实支持ISODate格式。
谢谢你的帮助。

i5desfxk

i5desfxk1#

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()方法,并自行格式化时间。

0yg35tkg

0yg35tkg2#

MongoDB的ISODate()只是一个辅助函数,它 Package 了一个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()
nxagd54h

nxagd54h3#

您可以像这样使用mongo查询,

yearMonthDayhms: { $dateToString: { format: "%Y-%m-%d-%H-%M-%S", date: {$subtract:["$cdt",14400000]}}}

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

cgfeq70w

cgfeq70w4#

// 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);

相关问题