我有一个小Rails应用程序,我需要使用24小时时钟输入时间。现在,我得到了:
<div class=".col-md-7">
<%= f.label :backinservice %><br>
<%= f.time_field :backinservice %>
</div>
提供AM / PM选项。当我输入像18:56这样的时间时,它会自动将其转换为06:56 PM。通常这样就完全可以了,只是不在这个应用程序中。
我也尝试过:
<div class=".col-md-7">
<%= f.label :recieved %><br>
<%= f.time_field :recieved, :format=>"%H:%M" %>
</div>
但这也不起作用。
是否有:format
选项允许直接使用24小时制?
答案 0 :(得分:4)
您必须使用value
密钥传递格式。
<div class=".col-md-7">
<%= f.label :recieved %><br>
<%=
f.time_field :recieved,
value: "%H:%M",
min: 'hh:mm:ss',
max: 'hh:mm:ss'
%>
</div>
doc说:
通过尝试在对象的值上调用带有“%T.%L”的strftime来生成默认值。 仍然可以通过传递“值”选项来覆盖它。
答案 1 :(得分:0)
为了使它对我有用,我必须执行以下操作:
<%=
f.time_field :my_time_field,
value: @model_instance.my_time_field.strftime("%H:%M")
%>
通过查看time_field的definition发现了这一点,即仅创建了Tags::TimeField.new
的新实例
Tags::TimeField.new
只会做define the format的一件事。