我希望返回自我的应用中创建用户以来的周数。
我的模型是User.rb(id,created_at)
鉴于user.created_at
:
2.4.0 :008 > user.created_at
=> Mon, 14 Aug 2017 15:51:23 UTC +00:00
我该怎样做:user.created_at.weeks_ago
,它返回一个整数,表示自用户创建以来的周数?
答案 0 :(得分:2)
如果你只是想建立一个人性化的字符串,我相信time_ago_in_words
就是你所追求的。
https://apidock.com/rails/ActionView/Helpers/DateHelper/time_ago_in_words
否则,我会诉诸以下内容:
(Time.new - user.created_at) / 1.week
如果您想要更优雅的解决方案,Subtract dates in Ruby and get the difference in minutes会提及the Time Difference gem for Ruby。
e.g。
TimeDifference.between(user.created_at.to_time, Time.now).in_weeks
答案 1 :(得分:1)
我会用:
Time.current
=> Wed, 20 Sep 2017 03:56:15 UTC +00:00
然后
((Time.current - person.created_at)/604800).to_i
减法为您提供秒数,然后除以604800
,这是一周内的秒数。