3
4

3 回答 3

4

在 RoR 中处理日期时,我们必须解决三个任务。我发现这些解决方案对我来说是最简单的:

1.如何正确显示日期。

安装I18n gem 并检查 config\locales\en.yml 中的日期格式。然后使用I18n.l()(或只是 l)表单助手来本地化 html.erb 文件中的日期。

  date:
    formats:
      default: "%m/%d/%y"

2.如何方便用户修改日期。

使用 jQuery datepicker(或 bootstrap datepicker 等)并根据 en.yml 格式在 jQuery 小部件选项中设置日期格式。

3.如何将日期从本地化(查看)格式转换为活动记录属性。

安装Delocalize gem 并将 :input 子部分添加到 en.yml 文件的 date: 部分。

input:
  formats:
    - :default

现在,当您分配日期时,您的日期将自动从本地化格式 (mm/dd/yy) 转换为数据库格式 (yyyy-mm-dd)。

于 2012-12-23T19:11:38.493 回答
3

我不得不使用altFieldandaltFormat选项来使其按描述工作:

$('input.datepicker').datepicker({
   dateFormat: "mm/dd/yy", 
   altField: alt_field, 
   altFormat: "yy-mm-dd"});

这需要有一个隐藏字段alt_field,它实际上以标准数据库格式保存您的日期。

于 2012-12-23T18:01:25.483 回答
0

包括以下 gem,它会自动将美国日期保存为 db 格式。

gem 'american_date'
于 2015-02-26T12:47:35.887 回答