1

我正在尝试从我的 RoR 项目中格式化我的日期,尽管在理解它是如何工作的方面存在真正的问题。在 php 中,这是一个简单的日期(“格式”,时间())

如果我只调用存储在我得到的数据库中的标准时间 2012-08-12 22:25:00 +1000

我正在尝试调用日期格式 event_time 和 event_date

Time::DATE_FORMATS[:month_and_year] = "%B %Y"
Time::DATE_FORMATS[:event_time] = "%l:%M %p"
Time::DATE_FORMATS[:event_date] = "%a, %e %b, %Y"

我目前正试图这样称呼

= schedule.time.to_s(:event_time)

我遇到的问题是我收到以下错误:

参数数量错误(1 代表 0)

4

3 回答 3

4

如果您经常需要这种日期格式的数据,您可以使用 strftime 或 esle 您的方法也很好

您添加的代码对我很有用

pritesh@cloudy-pritesh:~/railsdemo$ rails c
Loading development environment (Rails 3.2.6)
1.9.3p194 :001 > Date.today.to_s(:event_time)
 => "2012-08-13" 
1.9.3p194 :002 > Time::DATE_FORMATS[:month_and_year] = "%B %Y"
 => "%B %Y" 
1.9.3p194 :003 > Time::DATE_FORMATS[:event_time] = "%l:%M %p"
 => "%l:%M %p" 
1.9.3p194 :004 > Time::DATE_FORMATS[:event_date] = "%a, %e %b, %Y"
 => "%a, %e %b, %Y" 
1.9.3p194 :005 > Time.now.to_s(:event_time)
 => "11:13 AM" 

您也可以使用Time.now.strftime("%B %Y")

我的最后一个猜测,可能是您正在循环记录,并且在记录中的某处有一条 time 值为 nil 的记录

于 2012-08-13T05:47:58.130 回答
2

使用strftime

Time.now.strftime("%B %Y")   #August 2012

然后使用类似下面的东西

Time.now.strftime(Time::DATE_FORMATS[:month_and_year])
于 2012-08-13T05:33:17.070 回答
0

这很简单,

schedule.time.strftime(Time::DATE_FORMATS[:format_type])   #August 2012

详细使用请参考http://apidock.com/ruby/Time/strftime

于 2012-08-13T05:40:10.593 回答