You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查日期是否为未来日期?Jinja2模板实现遇报错求助

解决Jinja2模板日期比较及as_timestamp未定义问题
  • 错误原因:你用到的as_timestamp不是Jinja2的内置函数,所以触发了未定义错误。
  • 实现未来日期显示的正确方式:
    Jinja2支持直接比较datetime.date或datetime.datetime类型的对象,不需要额外转时间戳,写法更简洁。如果你的bibjson.discontinued_date和time.today()都是日期对象,直接用以下代码:
{% if bibjson.discontinued_date > time.today() %}
  <p>This date should be displayed only if in the future: {{ bibjson.discontinued_date.strftime("%d %B %Y") }}</p>
{% endif %}

如果你确实需要通过时间戳比较(比如涉及时区或复杂时间计算),可以用日期对象的timestamp()方法,但要注意date类型需要先转为datetime类型:

{% set today = datetime.datetime.combine(time.today(), datetime.time.min) %}
{% set discontinued_date = datetime.datetime.combine(bibjson.discontinued_date, datetime.time.min) %}
{% if discontinued_date.timestamp() > today.timestamp() %}
  <p>This date should be displayed only if in the future: {{ bibjson.discontinued_date.strftime("%d %B %Y") }}</p>
{% endif %}

注意点:

  • 调用time.today()要加括号,否则是引用函数本身而非当前日期值
  • 原代码里的date变量未定义,要替换为实际的日期变量bibjson.discontinued_date

内容的提问来源于stack exchange,提问作者Malvinka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:05:45