如何从RFC 2822格式化(星期六,2009年7月18日10:57:43 +0300)时间戳形成“模糊”日期/时间?
模糊日期我的意思是:“5分钟前”,“2天,15分钟前”。
答案 0 :(得分:8)
Rails为您的视图提供了一个名为time_ago_in_words
的辅助函数,您可以调用该函数从Time
对象输出这样的格式。
答案 1 :(得分:3)
def fuzzy_date(date)
date = Date.parse(date, true) unless /Date.*/ =~ date.class.to_s
days = (date - Date.today).to_i
return 'today' if days >= 0 and days < 1
return 'tomorrow' if days >= 1 and days < 2
return 'yesterday' if days >= -1 and days < 0
return "in #{days} days" if days.abs < 60 and days > 0
return "#{days.abs} days ago" if days.abs < 60 and days < 0
return date.strftime('%A, %B %e') if days.abs < 182
return date.strftime('%A, %B %e, %Y')
end
答案 2 :(得分:2)
在ruby中有一些非常强大的日期/时间解析器(不幸的是有点难以谷歌(TM))