Я не могу найти это, и мне кажется, что это должно быть легко. В Ruby on Rails, как мне взять:
2010-06-14 19:01:00 UTC
и превратите его в
June 14th, 2010
Могу ли я не просто использовать помощник в представлении?
Я не могу найти это, и мне кажется, что это должно быть легко. В Ruby on Rails, как мне взять:
2010-06-14 19:01:00 UTC
и превратите его в
June 14th, 2010
Могу ли я не просто использовать помощник в представлении?
Я не знаю, для
June 14th, 2010
Но если вы хотите
June 14, 2010
Ref как получить имя месяца в ruby on Rails? или this
Просто сделай
@date = Time.now
@date.strftime("%B %d, %Y")
И для суффикса используйте следующий
@date.strftime("%B #{@date.day.ordinalize}, %Y") # >>> Gives `June 18th, 2010`
Для справок в будущем: Rails date time formats
Форматы времени и даты в рельсах:
Дата
====
db:‘%Y-%m-%d’ 2008-08-20
long_ordinal:‘&proc’ August 20th, 2008
long:‘%B %e, %Y’ August 20, 2008
rfc822:‘%e %b %Y’ 20 Aug 2008
number:‘%Y%m%d’ 20080820
short:‘%e %b’ 20 Aug
DateTime
====
db:‘%Y-%m-%d’ 2008-08-20 16:56:21
long_ordinal:‘&proc’ August 20th, 2008 16:56
long:‘%B %e, %Y’ August 20, 2008 16:56
rfc822:‘%e %b %Y’ Wed, 20 Aug 2008 16:56:21 -0600
number:‘%Y%m%d’ 20080820165621
short:‘%e %b’ 20 Aug 16:56
Время
====
db:‘%Y-%m-%d %H:%M:%S’ 2008-08-20 16:56:21
long_ordinal:‘&proc’ August 20th, 2008 16:56
long:‘%B %d, %Y %H:%M’ August 20, 2008 16:56
rfc822:‘%a, %d %b %Y %H:%M:%S %z’ Wed, 20 Aug 2008 16:56:21 -0600
short:‘%d %b %H:%M’ 20 Aug 16:56
number:‘%Y%m%d%H%M%S’ 20080820165621
time:‘%H:%M’ 16:56
например:
<%= news.created_at.strftime("%B %d, %Y %H:%M") %>
Спасибо http://onrails.org/2008/08/20/what-are-all-the-rails-date-formats.html
Вам не нужно сохранять его в переменной.
Time.now.strftime("%Y-%m-%d") # 2013-01-08
Требуется модуль Time для Time.parse
и ActiveSupport для Integer#ordinalize
:
require 'time'
require 'active_support'
input = '2010-06-14 19:01:00 UTC'
t = Time.parse(input)
date = "%s %s, %d" % [t.strftime("%B"), t.day.ordinalize, t.year]
# => "June 14th, 2010"
Не забывайте, что рубин находится на рельсах: D
На днях был аналогичный вопрос. В моем ответе как получить имя месяца в ruby на Rails? Я показал, как вы можете добавить пользовательское определение to_s
в ваш файл config/environment.rb
.
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
:my_own_long_date_format => "%B %d, %Y")
Теперь вы можете вызвать Time.now.to_s(:my_own_long_date_format)
из любого вида, чтобы получить:
June 15, 2010