我在我的网站上使用jquery datetimepicker插件来选择日期时间。在表单上,我更改了会议表单的start_at和end_at时间(两者都使用datetimepicker),该表格在提交后发布。
Parameters: {"utf8"=>"✓", "authenticity_token"=>"ugju0DDRlcMkg5u2FtTDj8upZNV16vXgd7RLqzgNmLE=", "meeting"=>{"organizer_id"=>"2", "state"=>"draft", "title"=>"testing endtime", "message"=>"wtf!", "start_at"=>"Thu, Feb 07, 03:00PM", "end_at"=>"Thu, Feb 7, 4:00PM",...
显然,传递start_at和end_at。奇怪的是,start_at在数据库中得到更新,但end_at却没有。两者都在表格上改变了。有什么想法吗?
来自日志..
UPDATE "meetings" SET "start_at" = '2013-02-07 23:00:00.000000', "updated_at" = '2013-02-06 06:44:16.922129' WHERE "meetings"."id" = 6
我的datetimepicker设置..
$('.date_time_select').live('click', function() {
$(this).datetimepicker({
ampm: true,
dateFormat: "D, M d,",
timeFormat: "h:mmTT",
minDate: 0
}).focus();
});
我的控制器..
def update
@meeting = current_user.meetings.find(params[:id])
respond_to do |format|
if @meeting.update_attributes(params[:meeting])
format.html { redirect_to @meeting, :notice => "Meeting was successfully updated" }
format.json { head :ok }
end
end
end
和架构..
t.datetime "start_at"
t.datetime "end_at"
答案 0 :(得分:1)
时间格式应该是一种格式。
请注意start_at
的时间格式与end_at
的时间格式不同。
start_at=>Thu, Feb 07, 03:00PM
end_at=>Thu, Feb 7, 4:00PM
因此,如果您的表单字段如下所示:
<%= f.text_field :end_at, :class => "ended-at-datetime" %>
您可以在application.js
中明确地设置它:
$('.ended-at-datetime').datetimepicker({dateFormat: 'yy-mm-dd ', timeFormat: 'hh:mm:ss ', ampm: true});
同样适用于start_at
。
我可能错了,但我没有看到它分开。
我知道如果格式不对,它将不会进入数据库。