Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将日期时间转换为月、日和年?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 将日期时间转换为月、日和年?

Ruby on rails 将日期时间转换为月、日和年?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我似乎找不到这个,我觉得应该很容易。在Ruby on Rails中,我应该如何处理: 2010-06-14 19:01:00 UTC 把它变成 June 14th, 2010 我可以不在视图中使用辅助对象吗?我不知道为什么 June 14th, 2010 但是如果你想 June 14, 2010 参考或 照办 @date = Time.now @date.strftime("%B %d, %Y") 和后缀使用如下 @date.strftime("%B #{@date.day.ordin

我似乎找不到这个,我觉得应该很容易。在Ruby on Rails中,我应该如何处理:

2010-06-14 19:01:00 UTC
把它变成

June 14th, 2010
我可以不在视图中使用辅助对象吗?

我不知道为什么

June 14th, 2010
但是如果你想

June 14, 2010
参考或

照办

@date = Time.now
@date.strftime("%B %d, %Y")
和后缀使用如下

@date.strftime("%B #{@date.day.ordinalize}, %Y") # >>> Gives `June 18th, 2010`

供将来参考:

就在前几天,有一个类似的问题。在我的回答中,我展示了如何将自定义
添加到
config/environment.rb
文件中的定义中

ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
 :my_own_long_date_format => "%B %d, %Y")
现在您可以从任何视图调用
Time.Now.to_s(:我自己的\u long\u date\u格式)
以获取:

June 15, 2010

需要
时间的时间模块。parse
和对
整数的ActiveSupport#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"

您不需要将其保存在变量中

Time.now.strftime("%Y-%m-%d")  # 2013-01-08

rails中的时间和日期格式:

日期

====

日期时间

====

时间

====

例如:

<%= news.created_at.strftime("%B %d, %Y %H:%M") %>


感谢在Rails 5中运行的更新:

<%= l @user.created_at, format: :short %>

国际化:

<%= I18n.l( @user.created_at, format: :short) %>


您可以使用:long而不是:short

或者如果您想要任何其他日期,请先将其转换为日期格式。这太棒了。刚刚向我展示了strftime函数和每个无尽的选项。
<%= news.created_at.strftime("%B %d, %Y %H:%M") %>
<%= l @user.created_at, format: :short %>
<%= I18n.l( @user.created_at, format: :short) %>