这是一个非常简单的问题,之前可能已经被问过并回答了,但我找不到任何东西。
无论如何,我需要一个范围/阵列12小时的时间,所以像12 AM - 11 AM,12PM - 11PM。你可能会得到它的要点。现在我正在尝试做一个荒谬复杂的方法,包括将AM映射到一个阵列,将PM映射到另一个阵列,然后将两个阵列连接在一起。必须有一种更简单的方法来做到这一点。
我了解Rails time_select
,但我需要的格式不同于它提供的格式。有什么建议?
澄清:所以我要找的是12-hour clock,AM和PM。如果我想要24小时制,我可以做(0..24)
,然后完成。但是12小时的时钟从12-11 AM开始,然后从12-11 PM开始。我很确定之前有人这样做过。
答案 0 :(得分:21)
我同意@ MrYoshi的评论,格式化日期的最简单方法是.strftime()
,
有关所有可能的选项,请参阅RubyDoc
示例:
Time.now.strftime("%I:%M %p")
输出:HH:MM AM
或者你真正要求的:
Time.now.strftime("%I:00")
输出:HH:00
正如您所提到的time_select
我假设您希望将时间作为用户可选范围提供,因此请尝试time_select
(more options)的这些选项:
time_select 'game', 'game_time', {:minute_step => 60, :ampm => true}
此前一个问题:Time select form helper with 12 hour format for Rails 3?
答案 1 :(得分:6)
Rails内置
<%= f.time_select :start, {ampm: true} %>
http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-time_select