如何在Jinja2中比较两个日期?

11

在Jinja中比较两个日期有特定的方法吗?

我已经搜索了谷歌,但几乎没有找到与这个问题相关的东西。

我找到的最接近的是官方Jinja2文档中的以下内容:

It is also possible to sort by an attribute (for example to sort by the date of an object) by specifying the attribute parameter:

{% for item in iterable|sort(attribute='date') %}
    ...
{% endfor %}

你应该能够像在Python的setif块中一样进行比较。 - adarsh
你是想对列表进行排序还是创建一个if语句? - Ciaran Liedeman
2个回答

7
我不确定您正在寻找什么,但这是您如何比较日期时间与datetime.now()的方式。
我发现一个datetime对象可以创建一个新的datetime对象。
In [1]: import datetime

In [2]: wasNow = datetime.datetime.now()

In [3]: wasNow
Out[3]: datetime.datetime(2017, 7, 28, 14, 17, 21, 889530)

In [4]: wasNow.now()
Out[4]: datetime.datetime(2017, 7, 28, 14, 17, 30, 105077)

现在你在jinja模板中有了一个日期对象,你可以从现有的对象创建一个新的datetime对象并进行比较,如下所示:

{% if item.date < item.date.now() %}
  <p> This will display if the item.date is before item.date.now(). </p>
{% endif %}

我希望这能帮助您在使用jinja比较日期时,使内容更加易懂。

-2
我也遇到过这个问题,并且用了一种不同的方法解决了它。与其使用日期,你可能可以尝试使用项目ID来解决。
{% if item.id < 561095 %}
   DO ONE THING
{% else %}
   DO SOMETHING ELSE
{% endif %}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接