所以我在Rails上开发一个应用程序,当我从数据库中调用它时,我想编辑datetime的格式。我已经在网上找到了任何在我已经在数据库中创建日期类型时更改它的内容。
这是它目前正在展示的2017-11-01 21:36:55 UTC
我希望格式为MM / DD / YYYY 00:00 PM / AM 12小时时间
create_table "notifications", force: :cascade do |t|
t.string "title"
t.datetime "date"
t.text "content"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
此代码位于我的views / notifications / notifications.html.erb
中<tbody>
<% @notification.each do |notification| %>
<tr>
<td><%= notification.title %></td>
<td><%= notification.first_name %></td>
<td><%= notification.date %></td>
<td><%= notification.content %></td>
</tr>
<% end %>
</tbody>
答案 0 :(得分:0)
您可以使用strftime
:
<td><%= notification.date.strftime('%m/%d/%Y %I:%M %p') %></td>
<!-- Example output "10/23/2017 09:39 PM" -->
%m
给出了一个月的时间%d
给出了一天中的某一天%Y
给出了没有世纪的年份%I
以12小时时钟格式显示小时时间%M
给出时间分钟%p
给出时间的上午/下午答案 1 :(得分:0)
<td><%= notification.date.strftime("%m/%d/%Y %I:%M %p") %></td>
<强>解释强>
%I - 12 hour format
%p - AM/PM format
....
答案 2 :(得分:0)
我更喜欢使用rails的本地化系统。见Adding Date/Time Formats。有了这个,您可以自由地在locales文件中定义一些日期/日期时间格式,您可以重复使用这些格式。
# config/locales/en.yml
en:
time:
datetime:
formats:
default: "%m/%d/%Y %I:%M %p"
my_format: "%m/%d/%Y %I:%M %p"
然后使用l
辅助方法将它们应用到视图中的日期时间值。使用默认格式:
<td><%= l(notification.date) %></td>
或者使用特殊格式,如果它不同:
<td><%= l(notification.date, format: :my_format) %></td>
好处:您不仅可以在视图中使用定义的格式。使用I18n.l
方法,您也可以在脚本中使用它,并且对格式的更改将应用于整个应用程序。一个DRY配置在一个地方。
但首先,您需要了解如何configure适用于您的应用的国际化/本地化系统。