1

私のサーバーは米国にあり、railsのデフォルトのタイムゾーンは「UTC」に設定されています。インドのユーザーがフォームを送信します。railsはそのユーザーのタイムゾーンをインドからUTCに変換し、created_at列に保存しますか、それともUTCの現在の時刻を保存しますか?

4

1 に答える 1

2

現在の時刻をUTCで保存します。Created_atとupdated_atは、Active Recordsの内部タイムスタンプ列であるため、ユーザーが入力することはありません。

また、基本的なセキュリティプロトコルでは、クライアントの時間設定を使用しないでください。常にサーバーを使用する必要があります。

ただし、Railsは1つのことを実行します。つまり、Webサーバーの現在の時刻をUTCで使用し、データベースサーバーの現在の時刻ではなくデータベースに保存します。

デフォルトでは、時刻はUTC+オフセット形式で保存されます。「ムンバイ」などのデフォルトのタイムゾーンを指定すると、そのタイムゾーン用に変換された日時オブジェクトが返されます。

次のこともできます。

Time.zone.parse(@post.created_at.zone)
于 2012-11-19T07:44:02.883 に答える