如何在Django模板中显示当前年份?


Answers:


324

仅打印当前年份的完整标签是{% now "Y" %}。请注意,Y必须用引号引起来。


4
根据记录,{%now%}不会为与服务器所在时区不同的用户提供正确的结果。
TomaszZieliński

27
@Thomas True在某些情况下是正确的,但是,我所希望的当年最常见的用例是版权声明,对于在1月1日前后完美运行的24小时而言,使其完美无缺并不重要世界。
Endophage 2011年

2
顺便说一句,该代码是错误的,Y必须在cabishek的答案中引用该代码。
Endophage 2011年

如果我要月,即“ M”,我将如何“十一月”至“十一月”
乔什

1
@Josh完整的文档是docs.djangoproject.com/en/dev/ref/templates/builtins/…,但您要寻找的F不是M
Haldean Brown



2

我在基于Django的网站http://pmtboyshostelraipur.pythonanywhere.com/中使用了以下命令,该工具可以正常运行(也许,当您阅读本文时,它已经停止工作,因为这是免费托管,所以试试看代码)。

{% now 'Y' %}

您可以使用以下代码在我显示了本年度的页脚部分中访问和查看(省略CSS部分,因此请使用您自己的)。

<footer class="container-fluid" id="footer">
    <center>
        <p>
           &copy;
           {% now 'Y' %}, 
           PMT Boys hostel <br> 
           All rights reserved
        </p>
    </center>
</footer>

它在我的网站的页脚中显示以下居中文本。

©2018, PMT Boys hostel 
All rights reserved

-2

在我的模板中,除了当年之外,我还需要一个具有20个值(从当年开始)的信用卡到期年份下拉菜单。在select需要的值是2位和显示字符串4个位数。为了避免复杂的模板代码,我编写了这个简单的模板标签:

@register.filter
def add_current_year(int_value, digits=4):
    if digits == 2:
        return '%02d' % (int_value + datetime.datetime.now().year - 2000)
    return '%d' % (int_value + datetime.datetime.now().year)

并以以下方式使用它:

<select name="card_exp_year">
    {% for i in 'iiiiiiiiiiiiiiiiiiii' %}
    <option value="{{ forloop.counter0|add_current_year:2 }}">{{ forloop.counter0|add_current_year:4 }}</option>
    {% endfor %}
</select>

回答时间太长!
mohammedgqudah

@mohammedqudah,取决于您的需求!
Cloud Artisans'Dec
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.