5

我的应用程序中有一个表单输入,它接受 DD/MM/YYYY 格式的日期,例如 02/05/2012 是 2012 年 5 月 2 日。

我将其转换为合适的格式以通过 ActiveRecord 添加到数据库的最佳方法是什么?

在添加到数据库之前,是否有一种简单的方法可以将 02/05/2012 转换为 05/02/2012?

4

3 回答 3

8

这类似于让 rails 接受欧洲日期格式 (dd/mm/yyyy)

在您的模型中,创建一个 setter 方法,其中“my_date”是您的数据库字段。

def my_date=(val)
  Date.strptime(val, "%d/%m/%Y") if val.present?
end
于 2012-06-27T12:34:36.873 回答
5

对于这种特定格式,您可以调用DateTime.parse

DateTime.parse("02/05/2012") # => Thu, 02 May 2012 00:00:00 +0000
于 2012-06-27T12:38:15.530 回答
3

2 年后,但这也是我遇到的问题,这是我的解决方法。

在您看来,使用:<%= l article.created_at, format: :euro %> **确保添加 l

然后在 /config/locales/en.yml 添加:

en:

 time:

  formats:

    euro: "%d/%m/%Y"           

** 您也可以只添加欧元:“%D”以美国日期格式显示。

谢谢。

于 2014-07-22T18:50:46.640 回答