2013-03-21 48 views
3

我有一个要在MM/DD/YYYY中显示的日期选择器。不过,我正在使用一个想要YYYY-MM-DD的MySQL数据库。就目前来看,它的节省,但日日则被扭转。在保存到mysql数据库之前,rails会更改日期格式

现在我有一个initalizer,其中date_time_formats.rb有:

Date::DATE_FORMATS[:default] = '%m/%d/%Y' 
在我的日期选择器的JScript

我也有,我想以显示正确的格式:

$(this).datepicker({"format": "mm/dd/yyyy", "weekStart": 0, "autoclose": true, "startDate":new Date()}); 

我已经尝试这样的事情:

Date.strptime(params[:location], "%d/%m/%Y") 

但我得到一个HashWithIndifferentAccess错误。

如何在分配给模型实例之前在params散列表中重新设置日期格式?如果日期无效(如2013年4月4日没事,但2013年4月20日不是因为没有20个月),它似乎被模型拒绝。我是一个很棒的时间新手,所以也许我错了,但这似乎是如何工作。谢谢!

回答

1

查找各种日期类的strftime方法。你想要的咒语是Time.local(params[:location]).strftime('%m/%d/%Y'),希望有帮助!

0

的快速方法消毒日期为正确的格式是抓住它的控制器会保存之前和使用的strftime更正格式。例如:

@model = Model.new(model_params) 
@model.date_you_want = @model.date_you_want.strftime('%Y/%d/%m') 
@model.save 

这将以正确的格式保存日期。 (我也用datepicker-boostrap宝石)

相关问题