我的应用使用bootstrap3-datetimepicker
来显示时间(小时和分钟)。
时间可以正确保存在表格中,并可以在show
视图中显示。
但是当我尝试编辑时会显示错误的时间。 虽然小号是正确的,但小时是错误的(总是晚上8点)。
例如,
DB:04:01:00
查看:8:01 PM
(格式为LT
)
我希望成为4:01 AM
。
edit.html.erb
<%= render 'event_form'%>
_event_form.html.erb
:start_at
和:end_at
都会发生这种情况。
<%= form_for([@room, @event]) do |f| %>
...
<div class="container">
<div class="row">
<div class='col-sm-6'>
<div class="form-group">
<div class='input-group date' id='datetimepicker1'>
<%= f.text_field :start_at, :class => 'form-control'%> #this line
<span class="input-group-addon">
<span class="glyphicon glyphicon-time"></span>
</span>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
$('#datetimepicker1').datetimepicker({
format: 'LT'
});
});
</script>
</div>
</div>
<div class="container">
<div class="row">
<div class='col-sm-6'>
<div class="form-group">
<div class='input-group date' id='datetimepicker2'>
<%= f.text_field :end_at, :class => 'form-control'%> #this line
<span class="input-group-addon">
<span class="glyphicon glyphicon-time"></span>
</span>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
$('#datetimepicker2').datetimepicker({
format: 'LT'
});
});
</script>
</div>
</div>
...
我关注https://eonasdan.github.io/bootstrap-datetimepicker/#custom-formats
模式
create_table "events", force: :cascade do |t|
t.time "start_at"
t.time "end_at"
t.string "title"
t.string "detail"
t.integer "room_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "category"
t.integer "ccy"
t.decimal "amount"
end
events_controller.rb
...
def edit
@room = Room.find(params[:room_id])
@event = @room.events.find(params[:id])
end
...
如果你能给我任何建议,我将不胜感激。
答案 0 :(得分:0)
听起来数据库中的日期是UTC格式,但是日期选择器会在您的本地时区显示日期。您可以按如下方式禁用日期选择器的时区
var options = {};
options['timeZone'] = '';
$('.datetimepicker').datetimepicker(options);