web-dev-qa-db-ja.com

MongodbからISODateをフォーマットする

Mongodbでは、日付と時刻をISODate形式で保存しています。

これはこんな感じ

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

Nodejs/javascriptを使用して、時間コンポーネントを表示するにはどうすればいいですか?

Time : 01:00

私はこれを簡単にするためにmomentjsを使用していますが、momentjsがISODate形式をサポートしているように思えます。

ご協力ありがとうございます。

27
jamjam

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()メソッドを呼び出して、時間を自分でフォーマットできます。

28
Sarah Roberts

MongoDBの ISODate() は、JavaScript日付オブジェクトをラップし、ISO日付文字列の操作を容易にする単なるヘルパー関数です。

通常のJS日付を処理するのと同じメソッド のすべてを引き続き使用できます。

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

この年のようなmongoクエリを使用できます:{$ dateToString:{format: "%Y-%m-%d-%H-%M-%S"、date:{$ subtract:["$ cdt"、14400000] }}}

HourMinute:{$ dateToString:{形式: "%H-%M-%S"、日付:{$ subtract:["$ 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