prettidate works with future dates, thanks Sanjoy

This commit is contained in:
mdipierro
2012-09-29 09:53:46 -05:00
parent 41ec6da72c
commit dd4a4c281f
2 changed files with 20 additions and 15 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.0.9 (2012-09-28 20:19:52) dev Version 2.0.9 (2012-09-29 09:53:38) dev
+19 -14
View File
@@ -4342,34 +4342,39 @@ def prettydate(d,T=lambda x:x):
return '' return ''
else: else:
return '[invalid date]' return '[invalid date]'
if dt.days < 0:
suffix = ' from now'
dt = -dt
else:
suffix = ' ago'
if dt.days >= 2*365: if dt.days >= 2*365:
return T('%d years ago') % int(dt.days / 365) return T('%d years'+suffix) % int(dt.days / 365)
elif dt.days >= 365: elif dt.days >= 365:
return T('1 year ago') return T('1 year'+suffix)
elif dt.days >= 60: elif dt.days >= 60:
return T('%d months ago') % int(dt.days / 30) return T('%d months'+suffix) % int(dt.days / 30)
elif dt.days > 21: elif dt.days > 21:
return T('1 month ago') return T('1 month'+suffix)
elif dt.days >= 14: elif dt.days >= 14:
return T('%d weeks ago') % int(dt.days / 7) return T('%d weeks'+suffix) % int(dt.days / 7)
elif dt.days >= 7: elif dt.days >= 7:
return T('1 week ago') return T('1 week'+suffix)
elif dt.days > 1: elif dt.days > 1:
return T('%d days ago') % dt.days return T('%d days'+suffix) % dt.days
elif dt.days == 1: elif dt.days == 1:
return T('1 day ago') return T('1 day'+suffix)
elif dt.seconds >= 2*60*60: elif dt.seconds >= 2*60*60:
return T('%d hours ago') % int(dt.seconds / 3600) return T('%d hours'+suffix) % int(dt.seconds / 3600)
elif dt.seconds >= 60*60: elif dt.seconds >= 60*60:
return T('1 hour ago') return T('1 hour'+suffix)
elif dt.seconds >= 2*60: elif dt.seconds >= 2*60:
return T('%d minutes ago') % int(dt.seconds / 60) return T('%d minutes'+suffix) % int(dt.seconds / 60)
elif dt.seconds >= 60: elif dt.seconds >= 60:
return T('1 minute ago') return T('1 minute'+suffix)
elif dt.seconds > 1: elif dt.seconds > 1:
return T('%d seconds ago') % dt.seconds return T('%d seconds'+suffix) % dt.seconds
elif dt.seconds == 1: elif dt.seconds == 1:
return T('1 second ago') return T('1 second'+suffix)
else: else:
return T('now') return T('now')