私は全国(おそらくワールドワイド)の顧客を持つ予定のアプリを持っています。私はこのアプリで初めてタイムゾーンを扱っていますが、それは少し頭痛です。私は、異なるタイムゾーンでユーザーを扱うための戦略に興味があります。Rails 5:複数のタイムゾーンを持つレコードを保存するユーザーを処理するための戦略
今、ユーザーは、彼らが自分のアカウントを作成するときに自分のタイムゾーンを選択することができるとTime.zone
は、アプリケーションのコントローラで幅広いアプリケーションに設定されている:私は彼らのイベントを作成できるようにユーザーをしたいと思い
# application_controller.rb
def set_timezone
if current_user
Time.zone = current_user.time_zone
else
Time.zone = "Pacific Time (US & Canada)"
end
end
自分のタイムゾーンで時刻を自動的に設定し、他のタイムゾーンの他のユーザーに調整して適切な時刻を見せるようにします。
私はこの問題(一見よく見られる問題)に対処するためにGoogleに挑戦し、これに対処する戦略として不思議に思っています。私はRailsがいくつかの機能を持っていると思います。
ちょっと、私はあなたの方法をショットしようとしていますが、私は少し問題に遭遇しているようです。間違って出力されます。 [12] pry(#)> to_datetime = "%m /%d /%Y%H:%M%p") => Wed、31 May 2017 12:00:00 +0000 [13 ]#pause(#)> to_datetime.in_time_zone( "太平洋時間(米国とカナダ)") => Wed、31 May 2017 05:00:00 PDT -07:00 [14] pry(#)> 私はgoogleでチェックします。すべてがうまくチェックアウトされているようです:http://imgur.com/W81qFwV –
Antonio
'started_at'の値を教えてもらえますか?タイプミスかもしれないと私には思われます。 – zetacu
それはタイプミスでした。 ':ended_at'と':started_at'をコピーしましたが、まだエラーがあります。私は問題を自分自身の質問に入れます。http://stackoverflow.com/questions/43766762/rails-5-not-converting-datetime-object-timezone-correctly小さなコメントに問題を絞り込もうとするより簡単です。 – Antonio