私のサーバーは米国にあり、railsのデフォルトのタイムゾーンは「UTC」に設定されています。インドのユーザーがフォームを送信します。railsはそのユーザーのタイムゾーンをインドからUTCに変換し、created_at列に保存しますか、それともUTCの現在の時刻を保存しますか?
質問する
1109 次
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 に答える