ruby-on-rails – 循环数月
发布时间:2020-12-17 01:36:13 所属栏目:百科 来源:网络整理
导读:我试图循环数年和数月.如果@ user.created_at是2015年11月,那么我想得到这个输出: November 2015December 2015January 2016February 2016March 2016 我尝试了以下方法: Hash[(@user.created_at.month..Date.today.month).map { |month| [ month,0 ] }].mer
我试图循环数年和数月.如果@ user.created_at是2015年11月,那么我想得到这个输出:
November 2015 December 2015 January 2016 February 2016 March 2016 我尝试了以下方法: Hash[(@user.created_at.month..Date.today.month).map { |month| [ month,0 ] }].merge(...) 但上面的代码返回
因为它循环11..3. 解决方法
如果您想计算即将到来的月/年,您可以始终使用
advance :
start = @user.created_at.to_date.beginning_of_month Hash[(0..6).collect { |n| [ start.advance(months: n).month,0 ] }] 这应该适当地延长几天/几个月.您可能只想坚持日期而不仅仅是月份数. 如果你想做“到今天”,那试试这个: date = @user.created_at.to_date.beginning_of_month stop = Date.today.beginning_of_month hash = { } while (date <= stop) hash[date] = 0 date = date.advance(months: 1) end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |