代码之家  ›  专栏  ›  技术社区  ›  Michael Durrant

我如何从月号中获取月名[重复]

  •  26
  • Michael Durrant  · 技术社区  · 10 年前

    我可以通过以下方式获得下个月的月份和年份:

    (Time.now + 1.month).month
    # => 10
    (Time.now + 1.month).year
    # => 2015
    

    我怎样才能得到 "October" 从…起 10 ?

    4 回复  |  直到 10 年前
        1
  •  68
  •   j-dexx    10 年前

    您可以使用Date的monthnames常量

    Date::MONTHNAMES[10] => "October"
    
        2
  •  36
  •   Shahzad Tariq    9 年前

    RubyDate类提供了一个月名的常量数组。您可以将月份号作为索引传递,并将获得月份名称

    Date::MONTHNAMES[10]
    # November
    

    获取缩写月份名称

    Date::ABBR_MONTHNAMES[10]
    # Nov
    

    或者您也可以使用strftime%B格式器从日期获取月份名称,如

    Date.today.strftime(%B)
    # September
    

    同样地

    (Time.now + 1.month).strftime('%B')
    # November
    

    如果您的应用程序是多语言或使用英语以外的语言,您可以使用I18n获取本地化的月份名称

    I18n.l(Time.now, format: "%B")
    
        3
  •  18
  •   Yury Lebedev    10 年前

    我认为这应该在I18n模块的帮助下完成,因为 strftime 忽略区域设置:

    (Time.now + 1.month).strftime("%B") # => 'October'
    
    I18n.l(Time.now + 1.month, format: "%B") # => 'Oktober'
    
        4
  •  15
  •   Arup Rakshit    10 年前

    使用格式字符串。

    (Time.now + 1.month).strftime("%B")
    # => "October"