Ruby on rails 如何将时间字段解析为小时、分钟和秒?
如何将我的Ruby on rails 如何将时间字段解析为小时、分钟和秒?,ruby-on-rails,ruby,Ruby On Rails,Ruby,如何将我的start_at列解析为小时、分钟和秒的三个不同字段,而不是一个 注意:我想把它作为一列,而不是三列 这是我的密码: 表: class CreateTimers < ActiveRecord::Migration def change create_table :timers do |t| t.time :start_at t.timestamps end end end class CreateTimers 例如 start_
start_at
列解析为小时、分钟和秒的三个不同字段,而不是一个
注意:我想把它作为一列,而不是三列
这是我的密码:
表:
class CreateTimers < ActiveRecord::Migration
def change
create_table :timers do |t|
t.time :start_at
t.timestamps
end
end
end
class CreateTimers
表格:
'btn主span3'>
例如
start_at - 2011-04-26 04:14:56 UTC
小时:
start_at.strftime("%H") = "04"
分钟:
start_at.strftime("%M") = "14"
几秒钟:
start_at.strftime("%S") = "26"
查看
strftime
at如果您只想将时间分割为三个独立的输入,可以使用帮助器
否则使用strftime
方法;查看更多帮助
start_at.strftime("%H %M %S")
更详细的文档位于:您不需要说明时间值的格式。因为用户喜欢与众不同,如果你给他们一个自由格式的文本字段,你很可能会得到不同格式的数据,所以你必须灵活 您可以尝试使用DateTime的方法,它为格式提供了一些灵活性
DateTime.parse('2001-02-03T04:05:06+07:00')
#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
DateTime.parse('20010203T040506+0700')
#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
DateTime.parse('3rd Feb 2001 04:05:06 PM')
#=> #<DateTime: 2001-02-03T16:05:06+00:00 ...>
或:
需要“日期”
now=DateTime.now#=>#
现在.hour#=>7
now.min#=>52
now.sec#=>53
您可以在@surase提供的链接上找到strftime的详细描述。prasad%Y
是年,%Y
是两位数的年,%m
是月,%d
是天。这些与OP要求的小时、分钟和秒有什么关系?哦,妈的,对不起,我只是在编辑答案,不知道我为什么要写那个答案…现在展示一个示例,从一个字符串解析所有三个值,我们称之为好::-)我也给出了:P…现在happy@theTinMan:-)你有一些你正在研究的价值观样本吗?他们总是HH:MM:SS格式吗?OP需要时、分、秒,而不是年、月、日。@theTinMan:对不起,忽略了这个问题,更新了我的答案。谢谢你指出这一点。
DateTime.parse('2001-02-03T04:05:06+07:00')
#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
DateTime.parse('20010203T040506+0700')
#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
DateTime.parse('3rd Feb 2001 04:05:06 PM')
#=> #<DateTime: 2001-02-03T16:05:06+00:00 ...>
now = Time.now # => 2012-10-03 07:50:26 -0700
now.hour # => 7
now.min # => 50
now.sec # => 26
require 'date'
now = DateTime.now # => #<DateTime: 2012-10-03T07:52:53-07:00 ((2456204j,53573s,622304000n),-25200s,2299161j)>
now.hour # => 7
now.min # => 52
now.sec # => 53