Rails 12小时AM / PM范围一天

时间:2013-08-01 17:13:08

标签: ruby-on-rails ruby datetime time

这是一个非常简单的问题,之前可能已经被问过并回答了,但我找不到任何东西。

无论如何,我需要一个范围/阵列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开始。我很确定之前有人这样做过。

2 个答案:

答案 0 :(得分:21)

我同意@ MrYoshi的评论,格式化日期的最简单方法是.strftime(), 有关所有可能的选项,请参阅RubyDoc

示例:

Time.now.strftime("%I:%M %p")

输出:HH:MM AM

或者你真正要求的:

Time.now.strftime("%I:00")

输出:HH:00

正如您所提到的time_select我假设您希望将时间作为用户可选范围提供,因此请尝试time_selectmore options)的这些选项:

time_select 'game', 'game_time', {:minute_step => 60, :ampm => true}

此前一个问题:Time select form helper with 12 hour format for Rails 3?

答案 1 :(得分:6)