是否可以在Rails中创建两个日期之间的月份列表

10 ruby datetime ruby-on-rails date

我正在尝试创建一个页面来显示每个月的链接列表,分组为年.月份需要在两个日期之间,今天和第一次进入的日期.

我在砖墙,我不知道如何创建这个.

任何帮助都会受到大量关注

问候亚当

Ers*_*yan 34

只需将您想要的内容放在一个范围循环中,然后使用Date :: MONTHNAMES数组

(date.year..laterdate.year).each do |y|
   mo_start = (date.year == y) ? date.month : 1
   mo_end = (laterdate.year == y) ? laterdate.month : 12

   (mo_start..mo_end).each do |m|  
       puts Date::MONTHNAMES[m]
   end
end
Run Code Online (Sandbox Code Playgroud)


Ste*_*eet 6

以下代码将在Month类中添加months_between实例方法

#!/usr/bin/ruby 

require 'date'

class Date

  def self.months_between(d1, d2)
    months = []
    start_date = Date.civil(d1.year, d1.month, 1)
    end_date = Date.civil(d2.year, d2.month, 1)

    raise ArgumentError unless d1 <= d2

    while (start_date < end_date)
      months << start_date
      start_date = start_date >>1
    end

    months << end_date

  end
end
Run Code Online (Sandbox Code Playgroud)

这是非常轻微的测试,但它返回一个日期数组,每个日期是每个受影响月份的第一天.