我想计算两个日期之间的平均时间(以天为单位)。我想知道每个用户加入后的天数并得到平均值。
(Date.today - User.first.created_at.to_date).to_i
适用于特定用户。现在我想循环遍历所有用户并检索平均值。如何完成这样的事情?
答案 0 :(得分:0)
你可以试试这个:
User.all.map{|u| (Date.today - u.created_at.to_date).to_i}.sum/User.count
答案 1 :(得分:0)
或者你可以试试这个:
User.all.sum { |user| (Time.now - user.created_at) / 1.day }.to_i / User.count
顺便提一下,如果你像这样扩展Ruby的Array
:
class Array
def avg(&block)
sum(&block).to_i / count
end
end
你可以做一个很好的简短版本:
User.all.avg { |user| (Time.now - user.created_at) / 1.day }