Skip to content

Instantly share code, notes, and snippets.

@mopsled
Created December 27, 2012 07:14
Show Gist options
  • Save mopsled/4386236 to your computer and use it in GitHub Desktop.
Save mopsled/4386236 to your computer and use it in GitHub Desktop.
module Jekyll
module Filters
def relative_date(date)
# Note: You can use ruby code outside of the module (see below)
relative_date_in_words(date)
end
end
end
# Adopted from a function found on stack overflow:
# http://stackoverflow.com/a/195894/770938
def relative_date_in_words(date)
a = (Time.now - date).to_i
case a
when 0 then 'just now'
when 1 then 'a second ago'
when 2..59 then a.to_s+' seconds ago'
when 60..119 then 'a minute ago' #120 = 2 minutes
when 120..3540 then (a/60).to_i.to_s+' minutes ago'
when 3541..7100 then 'an hour ago' # 3600 = 1 hour
when 7101..82800 then ((a+99)/3600).to_i.to_s+' hours ago'
when 82801..172000 then 'a day ago' # 86400 = 1 day
when 172001..518400 then ((a+800)/(60*60*24)).to_i.to_s+' days ago'
when 518400..1036800 then 'a week ago'
else ((a+180000)/(60*60*24*7)).to_i.to_s+' weeks ago'
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment