如何在django模板中比较日期时间

时间:2012-03-29 11:49:46

标签: python django django-templates

背景:

我想显示时间和日期只停留一周。之后我想只显示日期。

我想做这样的事情。 (这不起作用)

{% if greenboard.datetime|timesince >= "1 week" %}
    {{greenboard.datetime.date}}<br />
{% else %}
    {{greenboard.datetime|timesince}} ago
{% endif %}

编辑: 嗨,即便如此,编辑所有我得到的是时间以及所有参数..即日期时间。什么应该是templatetag?截至目前使用此

{{ greenboard.datetime|timesince_threshold:2 }}

给出了使用

发布和尝试的确切时间

{{ greenboard.datetime|timesince }} 没有。几周和几天仍然无法弄清楚。

1 个答案:

答案 0 :(得分:3)

timesincedjango.utils.timesince函数的简单包装器。解决您问题的最简单方法是编写自定义过滤器:

from datetime import datetime, timedelta
from django import template
from django.utils.timesince import timesince

register = template.Library()

@register.filter
def timesince_threshold(value, days=7):
    """
    return timesince(<value>) if value is more than <days> old. Return value otherwise
    """

    if datetime.now() - value < timedelta(days=days):
        return timesince(value)
    else:
        return value
timesince_threshold.is_safe = False