【问题标题】:how do I get name of the month in ruby on Rails?如何在 ruby​​ on Rails 中获得月份名称?
【发布时间】:2010-06-11 11:00:43
【问题描述】:

所以我在我看来创建:

<%=date=Date.today%>

如何从日期中获取月份的名称?我试图做某事像

 <%= DATE::ABBR_MONTHNAMES(date.month)%>    

但没有成功。我不断收到错误:未初始化的常量ActionView::Base::CompiledTemplates::MONTHNAMES

我如何初始化常量,或者有没有其他方法可以让名称脱离日期格式?

非常感谢任何答案!

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    参考this

    <% @date = Date.today  %>  
    <%= @date.strftime("%B")%>
    

    如果

    @date >> Fri, 11 Jun 2010
    

    然后

    @date.strftime("%B") >> "June"
    

    【讨论】:

    • 我希望有Date.today.month_name
    • @Chloe:上课日期; def 月份名称; self.strftime("%B");结尾;结束
    • Date.today.strftime("%B")
    【解决方案2】:

    如果您只查看月份名称,rails 提供的Date::MONTHNAMES 常量是最简单的解决方案:

       Date::MONTHNAMES = 
       [
        [ 0] nil,
        [ 1] "January",
        [ 2] "February",
        [ 3] "March",
        [ 4] "April",
        [ 5] "May",
        [ 6] "June",
        [ 7] "July",
        [ 8] "August",
        [ 9] "September",
        [10] "October",
        [11] "November",
        [12] "December"
       ]
    

    【讨论】:

      【解决方案3】:

      如果您想要本地化月份名称,请尝试:

      I18n.t('date.month_names')[date.month]
      

      例子:

      I18n.t('date.month_names')[12] #=> "Dezembro"
      

      【讨论】:

      【解决方案4】:

      如果您有需要重复使用的特定自定义日期/时间格式,那么您可以扩展 ActiveSupport 日期/时间助手。

      例如如果您在 config/environment.rb 中定义以下内容

      ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(:full_english => "%A %B %d, %Y at %I:%M %p")
      

      然后,当您在视图中调用 Time.now.to_s(:full_english) 时,您会得到如下信息:

      "Friday June 11, 2010 at 12:53 PM"
      

      Ruby 的 strftime 方法在 http://apidock.com/ruby/Time/strftime 中有详细记录

      【讨论】:

      • 查看日期/时间转换器 to_formatted_s。这允许您定义日期格式(如 :month_only)并使用 date.to_formatted_s(:month_only) 以便最大限度地重复使用 strftime。
      【解决方案5】:

      选择你想要的

       Date.parse('5-jan-2017').strftime('%B')
      

      结果:

      =>“一月”

      Date.parse('5-jan-2017').strftime('%b')
      

      结果:

      =>“一月”

      对于您更多与日期相关的问题,请参阅此链接 http://www.foragoodstrftime.com/

      【讨论】:

        【解决方案6】:

        这应该可以帮助你 https://www.shortcutfoo.com/app/dojos/ruby-dates/cheatsheet

        Date::MONTHNAMES
        Date::DAYNAMES
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-02
          • 2013-03-08
          • 1970-01-01
          • 2015-12-20
          • 2010-11-01
          • 2020-10-18
          • 1970-01-01
          相关资源
          最近更新 更多