All pastes #56225 Raw Edit

Someone

public text v1 · immutable
#56225 ·published 2006-05-16 14:53 UTC
rendered paste body
from django.template import Library
import datetime

register = Library()

@register.filter(name='ago')
def ago(value, recent=None):
    "Returns a nicely formatted time difference"

    if recent is None:
        recent = datetime.datetime.now()

    difference = recent - value
    weeks, days = divmod(difference.days, 7)
    minutes, seconds = divmod(difference.seconds, 60)
    hours, minutes = divmod(minutes, 60)

    if weeks > 0:
        output = "%s week" % weeks
        if weeks > 1:
            output +='s'
    elif days > 0:
        output = "%s day" % days
        if days > 1:
            output+='s'
    elif hours > 0:
        output = "%s hour" % hours
        if hours > 1:
            output+='s'
    elif minutes > 0:
        output = "%s minute" % minutes
        if minutes > 1:
            output+='s'
    elif seconds > 0:
        output = "% second" % seconds
        if seconds > 1:
            output+='s'
    else:
        output = ""
    return output