【问题标题】:Date formats in ActiveRecord / Rails 3ActiveRecord / Rails 3 中的日期格式
【发布时间】:2011-02-26 19:33:20
【问题描述】:

在我的模型中,我有一个出发日期和一个返回日期。

我使用的是 text_field 而不是 date_select,以便我可以使用 JQuery 日期选择器。

我的应用程序目前位于美国,但我确实希望获得国际会员。

所以基本上这就是正在发生的事情。用户(美国)输入日期,例如 04/01/2010(4 月 1 日)。

当然,MySQL 将其存储为日期时间,例如 2010-04-01...

无论如何,当用户稍后去编辑日期时,它会显示“01/04/2010”,因为我使用的 strftime("%m/%d/%Y) 没有意义.. ..所以它认为是 1 月 4 日,而不是原来的 4 月 1 日。

就像准确存储数据的唯一方法是用户输入:2010-04-01

我希望所有这些都有意义。我真正追求的是一种让用户以原生格式输入(或使用日期选择器)日期的方法。

因此,欧洲的某个人可以输入 01/04/2010 来表示 4 月 1 日,但美国的某个人可以输入 04/01/2010。

有没有简单、优雅的解决方案?

感谢您的任何建议。

【问题讨论】:

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


    【解决方案1】:

    我最近也遇到了同样的问题。

    我的网站位于法国,所以我必须将日期存储为法国日期。

    我也使用 Jquery DatePicker。

    为此,我将 I18n.locale 设置为访问者所在的国家/地区。例如:

    I18.locale = :fr
    

    您可以在 application_controller 中使用 before_filter 来做到这一点

    然后,您可以在 locales/fr.yml 中定义显示日期的方式

    最后,在您的视图中,您可以使用 JqueryDatePicket 属性设置日期格式视图。

    如果我没记错的话,这个方法是这样的:

    $.datepicker.formatDate('dd-mm-yyyy');
    

    无论如何,您都可以在 datepicker 文档中找到它。

    这种格式可以在你的 locale/fr.yml 中找到,例如

    仅此而已!

    希望这会有所帮助!

    【讨论】:

    • 谢谢!我会检查一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多