Ответ 1
Использовать ruby strftime()
по датам/датам:
<%= link_to timeslot.opening.strftime("%Y %m %d"), [@place, timeslot] %>
Посмотрите документацию, чтобы узнать, как работает форматирование.
В моем представлении Rails у меня есть код ниже, отображающий дату и время.
<%= link_to timeslot.opening, [@place, timeslot] %>
Результат этой строки ниже:
2013-02-02 01:00:00 UTC
Как изменить это, чтобы он отображался как:
2/2/13: X:00 PST
Использовать ruby 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"
Однако это может быть не совсем то, что вы хотите. Пожалуйста, уточните в своем вопросе (а), что вы хотите делать с полем времени (например, вы всегда хотите отображать время в час? X: 00) и (b) вы всегда хотите сообщить время PST или хотите распечатать фактический часовой пояс или хотите преобразовать в PST??