我有一个使用timepicker addon来选择日期和时间的表单。
我的模型有一栏:
datetime :start_time
当表单被提交时,params hash有:
params[:start_time] #= '08/31/2014 10:50' as a string
以日期时间格式将其保存到数据库中的最佳方法是什么?
我不完全了解时间的处理方式,本地化,时区等。
当我尝试使用格式化保存它时,作为字符串,我得到参数不可及错误。当我创建新的 Time 实例时,将params [:start_date]作为参数传递,它保存为:
0008-01-01 00:01:15 UTC
TY。
答案 0 :(得分:1)
你可以写这样的东西,从你的字符串中获取正确的日期:
date_time = DateTime.strptime(params[:start_time], '%m/%d/%Y %H:%M')
date_time.to_s #=> "2014-08-31T10:50:00+00:00"
答案 1 :(得分:1)
您还可以尝试调整timepicker
,以便客户端为您提供所需的格式。
这样您只需要配置timepicker
一次,而您每次都不需要在服务器端解析时间
类似的东西:
$(document).ready(function () {
$('#timePicker').datetimepicker({
dateFormat: "dd-mm-yy",
timeFormat: 'hh:mm ss z'
});
});
检查此jsFiddle以获取演示