在我的模型中,我有一个departure_date和一个return_date。
我正在使用text_field而不是date_select,以便我可以使用JQuery datepicker。
我的应用程序现在位于美国,但我希望得到国际会员。
所以基本上这就是正在发生的事情。用户(美国)输入日期,例如04/01/2010(4月1日)。
当然,MySQL将其存储为日期时间,例如2010-04-01 ...
无论如何,当用户稍后编辑日期时,它会显示“01/04/2010”,因为我使用的strftime(“%m /%d /%Y”)没有意义。 ..所以它认为它是1月4日而不是原来的4月1日。
这就像准确存储数据的唯一方法是让用户输入:2010-04-01
我希望所有这一切都有道理。我真正想要的是用户以原生格式输入(或使用日期选择器)日期的方式。
所以欧洲有人可以在4月1日的01/04/2010输入,但美国有人会在04/01/2010输入。
有一个简单,优雅的解决方案吗?
感谢您的任何建议。
答案 0 :(得分:2)
我最近遇到过同样的问题。
我的网站位于法国,所以我必须将日期存储为法国日期。
我也使用Jquery DatePicker。
为此,我将I18n.locale设置为访问者的国家/地区。例如:
I18.locale = :fr
你可以使用before_filter进入application_controller
然后,在locales / fr.yml中,您可以定义要显示日期的方式
最后,在您的视图中,您可以使用JqueryDatePicket属性设置日期格式视图。
如果我记得很清楚,这种方法就是这样的:
$.datepicker.formatDate('dd-mm-yyyy');
你可以在datepicker文档中找到它。
这种格式可以在例如locale / fr.yml
中找到就是这样!
希望这会有所帮助!