javascript - JS new Date() は、mongodb に保存すると 8 時間早くなります。私たちは東 8 区にいますが、mongodb はグリニッジ時間を節約します。
我想大声告诉你
我想大声告诉你 2017-06-05 11:08:46
0
7
1661

私は mongoose を使用します。
これは私が定義したスキーマです:

リーリー

これは私が保存したデータです:

リーリー

mongodb に保存した後、保存時間は 8 時間早くなります:

「1995 年 12 月 17 日午前 3 時」は「12 月 16 日午前 7 時」になります。 「今日の夕方です。タイムゾーンが間違っています。この状況ではどうすればよいですか?」 mongodbやmongooseに対応する処理方法はありますか?

よろしくお願いします、兄弟!

我想大声告诉你
我想大声告诉你

全員に返信(7)
伊谢尔伦

mongodb は世界的に統一された UTC 時刻を保存していることがわかり、それを読み出した後、時刻を new Date(report.datetime).toLocaleString() に追加して直接保存します。組み込みの Just Date().toLocaleString() が機能します

いいねを押す +0
漂亮男人

mongoose と sequelize は開始時にタイム ゾーンを考慮しておらず、後で ORM が間違ったタイム ゾーンを取得したためです。解決策は、最新バージョンで解決されているかどうかを確認することです。まだ解決されていない場合は、問題を作成者に送信して、+8 時間かけて書き込み、読み取りを行うだけです。 8.

いいねを押す +0
滿天的星座

getTimezoneOffset() メソッドは、グリニッジ時間と現地時間の時差を分単位で返します。

いいねを押す +0
世界只因有你

UNIXタイムスタンプとして保存しておけば、取り出すときはタイムゾーンに合わせて変換処理するだけで問題ありません

いいねを押す +0
洪涛

ISO時間を新しい日付に戻すだけです。新しい日付を設定すると、保存されたISO標準時間は自動的にローカルタイムゾーンに変換されます

いいねを押す +0
我想大声告诉你

上記のクラスメートが言ったように、ISO 形式を使用してください: new Date("2017-03-02T08:00:00+08:00")

または

moment.jsの使用

ご参考までに。

MongoDB が大好きです!楽しむ!


いいねを押す +0
世界只因有你

タイムスタンプを保存してみることができます

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート