Rai*_*ner -1 ruby ruby-on-rails
我的问题类似于Rails - 返回一个选择标记的月份数组.
但我想要一个像这样的数组:
[
["September", 9],
["August", 8],
["July", 7],
["June", 6],
["May", 5],
["April", 4],
["March", 3],
["February", 2],
["January", 1],
["December", 0]
["November", -1],
["October", -2]
]
Run Code Online (Sandbox Code Playgroud)
如果当前月份是十月,那将是:
[
["October", 10]
["September", 9],
["August", 8],
["July", 7],
["June", 6],
["May", 5],
["April", 4],
["March", 3],
["February", 2],
["January", 1],
["December", 0]
["November", -1]
]
Run Code Online (Sandbox Code Playgroud)
这应该这样做:
require 'date'
Date::MONTHNAMES[1..12].reverse.rotate(12-Time.now.month).each_with_index.collect{|m, i| [m, Time.now.month-i]}
Run Code Online (Sandbox Code Playgroud)
编辑:
正如您在评论中提到的那样,您想要显示年份,您需要采用不同的方法来"回到过去".在使用rails时,可以使用activerecord的日期函数来执行此操作:
require 'active_support/core_ext/date/calculations'
t = Time.now
(0..11).collect { |i| current = t.advance(months:-i); ["#{Date::MONTHNAMES[current.month]} #{current.year}", t.month-i ] }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1361 次 |
| 最近记录: |