代码之家  ›  专栏  ›  技术社区  ›  cbmeeks

ActiveRecord/Rails 3中的日期格式

  •  3
  • cbmeeks  · 技术社区  · 15 年前

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

    我使用的是文本字段而不是日期选择器,这样我就可以使用jquery日期选择器。

    我的应用目前在美国,但我确实希望得到国际会员。

    所以基本上这就是发生的事情。用户(美国)键入日期,如2010年1月4日(4月1日)。

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

    不管怎样,当用户稍后编辑日期时,它显示“01/04/2010”,因为我使用的strftime(“%m/%d/%y”)没有意义……所以它认为它是1月4日而不是原来的4月1日。

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

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

    所以欧洲的人可以在2010年4月1日输入01/04,而美国的人可以在2010年4月1日输入。

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

    谢谢你的建议。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Arkan    15 年前

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

    我的网站是在法国,所以我必须把日期存储为法国日期。

    我还使用jquery日期选择器。

    为此,我将i18n.locale设置为访问者所在的国家。为例:

    I18.locale = :fr
    

    您可以使用应用程序控制器中的前置过滤器来完成此操作。

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

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

    如果我还记得的话,这个方法就是这样的:

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

    您可以在datepicker文档中找到它。

    这个格式可以在您的locale/fr.yml中找到。

    就这些!

    希望这会有所帮助!