Railsビューには、日時を表示する以下のコードがあります。
<%= link_to timeslot.opening, [@place, timeslot] %>
この行の結果は次のとおりです。
2013-02-02 01:00:00 UTC
これを変更して、次のように表示するにはどうすればよいですか。
2/2/13: X:00 PST
Railsビューには、日時を表示する以下のコードがあります。
<%= link_to timeslot.opening, [@place, timeslot] %>
この行の結果は次のとおりです。
2013-02-02 01:00:00 UTC
これを変更して、次のように表示するにはどうすればよいですか。
2/2/13: X:00 PST
strftime()
日付/日時にルビーズを使用します。
<%= link_to timeslot.opening.strftime("%Y %m %d"), [@place, timeslot] %>
フォーマットがどのように機能するかについては、ドキュメントをご覧ください。
これにはヘルパーを使用する必要があります。
UTCからPSTに変換する場合は、このin_time_zone
方法を使用できます。
def convert_time(datetime)
time = Time.parse(datetime).in_time_zone("Pacific Time (US & Canada)")
time.strftime("%-d/%-m/%y: %H:%M %Z")
end
<%= link_to convert_time(timeslot.opening), [@place, timeslot] %>
要求した形式の場合:
<%= link_to timeslot.opening.strftime(%d/%m/%y: %H:%M:%S %Z), [@place, timeslot] %>
ここで利用可能なその他のオプション:
http://rorguide.blogspot.co.uk/2011/02/date-time-formats-in-ruby-on-rails.html
例で探している正確な日付フォーマットを取得するには、次のstrftimeフォーマット文字列を使用します"%-d/%-m/%y: %k:00 PST"
ただし、それはあなたが望むものとは正確に一致しない場合があります。質問で、(a)時間フィールドで何をしたいのか(たとえば、常に時間に時間を表示したいですか?X:00)および(b)を明確にしてください。常にPST時間を報告したいですか、それとも実際のタイムゾーンを印刷したいですか、それともPSTに変換したいですか?