ruby-on-rails – 循环数月

ruby-on-rails – 循环数月,第1张

概述我试图循环数年和数月.如果@ user.created_at是2015年11月,那么我想得到这个输出: November 2015December 2015January 2016February 2016March 2016 我尝试了以下方法: Hash[(@user.created_at.month..Date.today.month).map { |month| [ month, 0 我试图循环数年和数月.如果@ user.created_at是2015年11月,那么我想得到这个输出:

November 2015December 2015January 2016February 2016march 2016

我尝试了以下方法:

Hash[(@user.created_at.month..Date.today.month).map { |month| [ month,0 ] }].merge(...)

但上面的代码返回

stack level too deep

因为它循环11..3.
我怎么能弄清楚这个问题呢?

解决方法 如果您想计算即将到来的月/年,您可以始终使用 advance

start = @user.created_at.to_date.beginning_of_monthHash[(0..6).collect { |n| [ start.advance(months: n).month,0 ] }]

这应该适当地延长几天/几个月.您可能只想坚持日期而不仅仅是月份数.

如果你想做“到今天”,那试试这个:

date = @user.created_at.to_date.beginning_of_monthstop = Date.today.beginning_of_monthhash = { }while (date <= stop)  hash[date] = 0  date = date.advance(months: 1)end
总结

以上是内存溢出为你收集整理的ruby-on-rails – 循环数月全部内容,希望文章能够帮你解决ruby-on-rails – 循环数月所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241833.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存