ActiveRecord / Rails中的日期格式3

时间:2010-06-02 12:42:33

标签: datetime internationalization datepicker ruby-on-rails-3

在我的模型中,我有一个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输入。

有一个简单,优雅的解决方案吗?

感谢您的任何建议。

1 个答案:

答案 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

中找到

就是这样!

希望这会有所帮助!