我在应用程序中有一个表单输入框,可以接受格式为DD/MM/YYYY的日期,例如02/05/2012表示2012年5月2日。
我最好的方法是将其转换为适合通过ActiveRecord添加到数据库中的格式?
在添加到数据库之前,是否有一种简单的方法将02/05/2012转换为05/02/2012?
我在应用程序中有一个表单输入框,可以接受格式为DD/MM/YYYY的日期,例如02/05/2012表示2012年5月2日。
我最好的方法是将其转换为适合通过ActiveRecord添加到数据库中的格式?
在添加到数据库之前,是否有一种简单的方法将02/05/2012转换为05/02/2012?
这与让Rails接受欧洲日期格式(dd/mm/yyyy)类似。
在您的模型中,创建一个setter方法,其中“my_date”是您的数据库字段。
def my_date=(val)
Date.strptime(val, "%d/%m/%Y") if val.present?
end
针对这种特定格式,您可以调用DateTime.parse
:
DateTime.parse("02/05/2012") # => Thu, 02 May 2012 00:00:00 +0000
我两年后遇到了同样的问题,这是我的解决方案。
在你的视图中使用: <%= l article.created_at, format: :euro %> **确保添加l
然后在 /config/locales/en.yml 中添加:
en:
time:
formats:
euro: "%d/%m/%Y"
您也可以添加 euro: "%D" 以显示美国日期格式。
谢谢。