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

私は 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
                最新のダウンロード
                詳細>
                ウェブエフェクト
                公式サイト
                サイト素材
                フロントエンドテンプレート
                私たちについて 免責事項 Sitemap
                PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!