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

如何在Django template中计算指定日期变量与今日日期的间隔月份数

模板计算日期间隔月份问题修复方案

现有代码错误点

  • 变量输出语法错误:原代码写为{ duration }},缺少左侧半块花括号,正确输出语法为{{ 变量名 }}
  • with闭合标签语法错误:原代码写为% endwith %},缺少左侧{标记,正确闭合标签为{% endwith %}
  • 变量引用不一致:计算年份差时使用organisation.date_founded,计算月份差时又使用date_started,需统一为同一个待计算的日期变量

修复后可运行模板代码

{% with duration=(date_started.year - today.year) * 12 + (date_started.month - today.month) %}
  {{ duration }}
{% endwith %}

注:使用前需确保模板上下文已传入today(今日日期对象)和date_started(待对比的日期对象),两个变量均为可直接读取year、month属性的日期类型。

更便捷的实现方案(推荐)

如果多次用到该计算逻辑,可以自定义模板过滤器复用代码:

  1. 在应用的templatetags目录下新建自定义标签文件,添加如下代码:
from django import template
import datetime

register = template.Library()

@register.filter
def get_month_diff(start_date):
    today = datetime.datetime.today()
    return (start_date.year - today.year) * 12 + (start_date.month - today.month)
  1. 模板中加载自定义过滤器后直接调用即可:
{% load your_custom_tag_file %}
{{ date_started|get_month_diff }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:36:03