Skip to content

Instantly share code, notes, and snippets.

@nascimento
Created November 7, 2016 20:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nascimento/e351fc9aadad664e6818669c2cc6b053 to your computer and use it in GitHub Desktop.
Save nascimento/e351fc9aadad664e6818669c2cc6b053 to your computer and use it in GitHub Desktop.
Detailed distance from seconds
def humanize secs
[[60, :seconds], [60, :minutes], [24, :hours], [1000, :days]].map{ |count, name|
if secs > 0
secs, n = secs.divmod(count)
"#{n.to_i} #{name}"
end
}.compact.reverse.join(' ')
end
p humanize 1234
#=>"20 minutes 34 seconds"
p humanize 12345
#=>"3 hours 25 minutes 45 seconds"
p humanize 123456
#=>"1 days 10 hours 17 minutes 36 seconds"
p humanize(Time.now - Time.local(2010,11,5))
#=>"4 days 18 hours 24 minutes 7 seconds"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment