2

タイムゾーンで遊んでいて、簡単な登録フォームがあります。ユーザー登録後、ユーザーに現在時刻を表示させたいのですが、どうすればいいですか?

4

2 に答える 2

3

このような情報はサーバー側では利用できないため、Rubyだけでそれを行うことはできません。

1)ユーザーの場所がわかっている場合は、地理的位置を特定してタイムゾーンを決定できます。ただし、geoデータベースから取得したIP範囲にいくつかのタイムゾーンがある場合は、問題になる可能性があります。

2)別の解決策として、JavaScriptを使用して支援することができます。したがって、javascriptを使用すると、タイムゾーンを計算してCookieとして設定し、リクエストオブジェクトからRubyでアクセスできます。(Javascriptでタイムゾーンを取得する方法

于 2012-04-13T14:56:14.610 に答える
1

登録時にユーザーに現在のタイムゾーンを尋ねて、ユーザーの詳細を保持することができます。

ActiveSupport(Rails APIの一部として含まれています)には、タイムゾーンを処理するための優れた方法があります。* in_time_zone *を使用して、現在の時刻を別のタイムゾーンの時刻に変換できます。

例として

Time.now.in_time_zone("America/Guyana")
Time.now.in_time_zone(8)

time_zoneキーは、次のAPIドキュメントで確認できます:http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html

詳細については、TimeWithZone(http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html#method-i-in_time_zone )を参照してください。

于 2012-04-13T15:00:29.117 に答える