これが正常なのか、それともスキーマのセットアップまたはクエリ プロセスで何か不足しているのか、疑問に思っています。
私のアプリとマングースは、mongodb に日付を UTC として正しく保存しています。これは、mongo シェルを介してドキュメントを表示することで確認できます。mongoose を介して mongodb からドキュメントを取得すると、日付が現地時間になりました。
照会時にマングースに日付を UTC として保持させる方法はありますか?
Mongoose と node.js は日付に対して何もしていません。実際には UTC の時刻が含まれていても、Date
呼び出したときに JavaScript 型がローカル時刻の文字列を生成するだけです。toString()
UTC 時間文字列が必要な場合は、オブジェクトtoUTCString()
を明示的に呼び出します。Date
タイムスタンプは、UNIX タイムスタンプとして、タイムゾーンにとらわれずに保存されます。このタイムスタンプはタイムゾーンを超えて機能し、ノードは現在のタイムゾーンを使用して解釈します。get UTCHours() などの getUTC* メソッドを使用して、日付オブジェクトから UTC 値を取得できます。