在Rails中使用时间和日期

时间:2014-08-31 10:01:53

标签: ruby-on-rails datetime

我有一个使用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。

2 个答案:

答案 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以获取演示