環境はAWSのRDSでMySQLを設定しています。
INSERTするのは、Nginx+Unicornで動くRuby on Railsです。
Viewデータから、投げた時間をInsertする時に時間が変更されます。
0時を入れると15時に、7時を入れると22時になります。
HTML
1<input class="timePick" name="starttime" placeholder="開始時間を入力してください">
受け取ったパラメータを下記のように格納します
Ruby
1@program.start_time = params[:starttime] 2~ 3@program.save
デバッグで、logger.debug(@program.start_time)をすると、07:00になっており、INSERT文の中だと22:00になります。
尚、ローカルであるvagrantの開発環境では問題なく動いております。
MySQLのタイムゾーンは東京に設定されており、Rails側のTimezoneも東京になっているのを確認しています。
考えられる原因がありましたら、ご教授の方よろしくお願い致します。
追記--------------------------
試したことを追記します。
パラメータで渡していたので、一度Rails側のControllerでTime.zone.parseしてみましたが、やはり無意味でした。
Ruby
1Time.zone.parse(params[:starttime])
直前までは07:00:00なのに、ログに記載されているINSERT文では22:00:00になっています。
追記2--------------------------
今まで何も気にしていなかったのですが、よく見ると
created_atとupdated_atもズレていることが分かり、それは9時間ほどズレていました。
なので、スタート時間のほうも9時間ズレていると思います。