我在我的数据库中有一个生日字段,其日期值为yyyy-mm-dd
。我想表现为更加人性化。因此2011-11-15
应显示为Tuesday, November 15th, 2011
。
非常奇怪的是,当我在rails控制台中执行@user.birthday
时,该值显示为我想要的格式。但不在网上。在Rails中,我如何显示日期,如2009年12月1日星期一,2009年12月1日
我不确定发生了什么事。
我在我的数据库中有一个生日字段,其日期值为yyyy-mm-dd
。我想表现为更加人性化。因此2011-11-15
应显示为Tuesday, November 15th, 2011
。
非常奇怪的是,当我在rails控制台中执行@user.birthday
时,该值显示为我想要的格式。但不在网上。在Rails中,我如何显示日期,如2009年12月1日星期一,2009年12月1日
我不确定发生了什么事。
它不正确的格式显示出来的原因是,Rails的视图并在必要时调用to_s
。
你应该Internationalization and Localization of Rails做到这一点。
所以在你的例子中,I18n.l @user.birthday
应该做的伎俩。您应该检查您的语言环境的默认日期格式是什么,它位于`config/locales/.yml。您可以按照"How to store custom translations"中的说明添加您的格式。因此,通过增加
en:
date:
formats:
default: "%A, %B %d,%Y"
这种格式将用于在任何你约会调用I18n.l
。
试试这个<model>.created_at.to_date.to_s(:long)
也许接受一个答案。 – Henrik