4

ubuntuサーバーでmongodbを実行しています。サーバー時間は

root# date
Thu Sep 13 21:15:58 BST 2012

しかし、次のコマンドを実行すると、別の結果が得られます

root# mongo
MongoDB shell version: 2.2.0
connecting to: test
> new Date()
ISODate("2012-09-13T20:15:58.670Z")

ちょうど1時間の差があります。updated_onを使用して phpでドキュメント フィールドを更新するMongoDate()と、フィールドの値はまだ 1 時間ずれています。

[編集] 実際、PHP エラー ログを確認したところ、ログ ファイルの時間も 1 時間ずれています。

[13-Sep-2012 20:11:14 UTC] Log Message (Time should be 21:11:14)
4

4 に答える 4

6

モンゴが教えてくれる

2012-09-13T20:15:58.670Z

Z = ズールー時間 / ゼロ オフセット / UTC。ところで、ISO8601 標準で定義されているように、その TZ で時間を 2012-09-13T20:15:58.670+00:00 として表すこともできます。

BST は UTC+1 です。したがって、それらは同じ時間ですが、タイムゾーンが異なります。

于 2012-09-13T20:21:28.607 に答える
3

メソッドで DateTime を表示することにより、この問題を解決できますToLocalTime

MVC C# の例:@Model.StartDate.ToLocalTime()

これは、MongoDB が日時を BST 形式で保存する方法によるものです。そのため、サーバーの夏時間またはタイム ゾーンは、アプリケーションに返される実際の日時に影響します。この単純なコードは、通常どおり、ToString("dd MMMM yyyy hh:mm tt")または要件に基づいて他の形式でフォーマットできます。

于 2015-09-16T14:07:18.810 に答える