web-dev-qa-db-fra.com

Formatage d'ISODate à partir de Mongodb

Dans Mongodb, je stocke la date et l'heure au format ISODate.

Qui ressemble à ceci

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

En utilisant nodejs/javascript, comment puis-je afficher le composant de temps pour obtenir quelque chose comme ça

Time : 01:00

J'utilise momentjs pour rendre cela plus facile mais d'après ce que je peux dire, momentjs semble prendre en charge le format ISODate.

Merci pour ton aide.

27
jamjam

L'objet Date de JavaScript prend en charge le format de date ISO, donc tant que vous avez accès à la chaîne de date, vous pouvez faire quelque chose comme ceci:

> 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)'

Si vous voulez la chaîne d'heure sans les secondes et le fuseau horaire, vous pouvez appeler les méthodes getHours () et getMinutes () sur l'objet Date et formater l'heure vous-même.

28
Sarah Roberts

ISODate () de MongoDB est juste une fonction d'aide qui enveloppe un objet de date JavaScript et facilite le travail avec les chaînes de date ISO.

Vous pouvez toujours utiliser tous les mêmes méthodes que pour travailler avec une date JS normale , comme:

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()
30
Stennie

vous pouvez utiliser la requête mongo comme cette annéeMonthDayhms: {$ dateToString: {format: "% Y-% m-% d-% H-% M-% S", date: {$ soustraire: ["$ cdt", 14400000] }}}

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

enter image description here

1
Jin Thakur
// 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);
1
user3684669