1

私はこのような設定を持っています

config / application.rb

config.time_zone = 'London'
config.active_record.default_timezone = :utc

すべての時間はロンドンの現地時間で保存されます。
ただし、私のアプリケーションは世界中のどこからでも使用されるので、現地時間で表示したいと思います。

どうすればそれを可能にできますか?

PS私はこれを見ましたが、ユーザーがRailsアプリのメンバーシップである場合にのみ機能するようです。
見ている人が登録して現地時間を設定しない限り、現地時刻はわかりません。

訪問者のPCのタイムゾーンを取得し、それを使用してUTC時間を計算する手法はありませんか?

http://railscasts.com/episodes/106-time-zones-revised?autoplay=true

4

1 に答える 1

1

javascriptを使用して、ユーザーのローカルタイムゾーンに従って時間を変換できます。これが私がしたことです:

ApplicationHelper.rbに、クライアントのブラウザーでjavascriptを呼び出すhtmlを生成するメソッドを追加します。

def localize(time)
    "<script type='text/javascript'>localize(#{time.tv_sec * 1000});</script>".html_safe
end

時間を処理し、その文字列形式を表示するjavascript関数を追加します(ブラウザのタイムゾーンを使用)

function localize(millisec)
{
  var d = new Date(millisec);
  document.write(d.toString());
}

次に、ビューで時間を表示する必要がある場合は、ヘルパーメソッドを呼び出します。

<span><%= localize(@my_record.time) %></span>
于 2013-05-13T02:25:06.230 に答える