Ruby on rails日期格式化

时间:2012-08-13 05:28:05

标签: ruby-on-rails time format haml

我正在尝试从我的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)

  

3 个答案:

答案 0 :(得分: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")

来完成此操作

我的最后一次猜测,可能是你正在循环记录并且在记录中有一个记录,其中有一个时间值为零的记录

答案 1 :(得分:2)

使用strftime

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

然后使用类似下面的内容

Time.now.strftime(Time::DATE_FORMATS[:month_and_year])

答案 2 :(得分:0)

简单,

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

请参阅http://apidock.com/ruby/Time/strftime以获取详细用途。