Rails 3是否有用户友好的time_select?默认的time_select表单助手为您提供小时[00-23],分钟[00-59]和可选的秒[00-59].0-23小时的下拉列表对于我们这些没有军事时间的人来说非常令人沮丧.用户友好的解决方案将显示1-12小时和额外的上午/下午下拉列表.
有没有选项或单独的插件来处理这个?我不能成为第一个想要这个的人,但我没有找到任何解决方案.
谢谢!
我需要从rails 2.3.8应用程序的用户捕获时间和时区,但是无法想到创建和解析选择的干净解决方案.
理想情况下,我会有以下的下拉菜单:
有没有一个gem /插件可以完成我想要的东西?我是否需要在数据库中存储时间和时区?什么是最好的存储策略?
我最终需要在UTC中吐出这些值,但用户应该能够返回并在正确的时区内查看时间.
我正在使用Rails 3.2.13。我想在下拉菜单中显示12个小时的时钟,并且还显示上午/下午。似乎很多人都在谈论这个,但是没有内置的解决方案。
time_select("post", "written_on", {:ampm => true}) # it gives me just two dropdowns. No dropdown for am/pm
f.time_select :written_on, :ampm => true # same here. No third dropdown for am/pm
Run Code Online (Sandbox Code Playgroud)
有什么建议么?
time ruby-on-rails time-select ruby-on-rails-3 ruby-on-rails-3.2
我想从rails time_select帮助器的输出中删除":".助手似乎在构建分钟选择框时自动输出.
有任何想法吗?
谢谢!
以下是ClockPicker for Bootstrap的链接:http://www.jqueryrain.com/?B83aD_dg
它完美地运作; 但是,当我尝试使用它来填充Bootstrap模式弹出窗口中的文本输入时,时钟出现在模式弹出窗口后面.如何让时钟选择器出现在模态弹出窗口中(或前面)呢?
这是一个发生的事情的图像:

我已经尝试将div的z-index改为前面; 我也尝试将每个元素的z-index更改为clockpicker.css前面(例如:z-index:1120).然而,所有这一切都是让时钟消失.
<div class="modal fade appointment-modal"
id="appointment-modal"
tabindex="-1"
role="dialog"
aria-labelledby="myModalLabel"
aria-hidden="true">
<div class="modal-dialog tutors-modal">
<div class="modal-content tutors-modal">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Appointment Scheduler</h4>
</div>
<div class="modal-body" style="height: 575px; left: 2.5%;">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="alert alert-danger"><span class="glyphicon glyphicon-alert"></span>
<form role="form" action="/portal/make-appointment/" method="post" id="appointment_form" class="form-horizontal">
<div class="col-lg-6">
<div class="input-group clockpicker" id = "clockpicker" style="padding: 6px; padding-bottom: 20px;">
<input type="text" class="form-control" id = "time" name="time" …Run Code Online (Sandbox Code Playgroud) jquery datetime jquery-plugins time-select twitter-bootstrap
我一直在寻找解决这个问题的解决方案.甚至在stackoverflow上有很多建议,我尝试了所有这些,但是我的情况都没有,我不知道为什么.
我在我的服务器上运行了当前版本的RoR [4.1.5],我有一个表单,用户必须选择"time from"和"time to"值.
<p>
<%= f.label :Time %><br>
<%= f.time_select :timefrom, {minute_step: 60} %> to <%= f.time_select :timeto, {minute_step: 60} %>
</p>
Run Code Online (Sandbox Code Playgroud)
我从数据库中获取默认值.为了获取它们,我只收集已输入的最后一个时间值.通常是1小时的时间范围:
<% changetimeto = (Production.select("timeto").last.timeto).strftime("%H:%M") %>
<% changetimefrom = (Production.select("timeto").last.timeto + 3600).strftime("%H:%M") %>
Run Code Online (Sandbox Code Playgroud)
所以我尝试过:
<%= f.time_select :timefrom, {minute_step: 60}, :selected => changetimeto %> to <%= f.time_select :timeto, {minute_step: 60}, :selected => changetimefrom %>
Run Code Online (Sandbox Code Playgroud)
或:value =>或:default =>
但似乎没什么用,它甚至没有给我一个错误.我检查了变量,changetimeto并且changetimefor它们具有正确的值,如"14:00"和"15:00".但正如我所说,它没有做任何事情.
我也尝试用:default => {hours: '14', minutes: '00'}等分别处理小时和分钟,但这也不起作用,甚至不会导致错误.根本不值一提.它仍然默认为实际时间.
有人对我有推荐或暗示吗?
我有一个time_select,我在其中设置时间值如下;
<%= f.time_select :start_time, :value => (@invoice.start_time ? @invoice.start_time : Time.now) %>
Run Code Online (Sandbox Code Playgroud)
这总是产生一个时间选择器,其中包含当前时间而不是@ invoice.start_time的值.
@ invoice.start_time实际上是一个datetime对象,但如果我使用的话,这会被传递给时间选择器
<%= f.time_select :start_time %>
Run Code Online (Sandbox Code Playgroud)
我想我真正想问的是如何使用:value选项和time_select帮助器.像下面这样的尝试似乎没有产生预期的结果;
<%= f.time_select :start_time, :value => (Time.now + 2.hours) %>
<%= f.time_select :start_time, :value => "14:30" %>
Run Code Online (Sandbox Code Playgroud)