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

Posted

技术标签:

【中文标题】如何在 Django 模板中显示当前年份?【英文标题】:How to display the current year in a Django template? 【发布时间】:2011-09-09 17:27:40 【问题描述】:

动态显示当前年份的内置模板标签是什么。比如“2011”,显示它的模板标签是什么?

【问题讨论】:

【参考方案1】:

% now %

【讨论】:

你可能忘记了这个额外的琐事:docs.djangoproject.com/en/1.3/ref/templates/builtins/…【参考方案2】:

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

【讨论】:

郑重声明,% now % 不会为与服务器不同时区的用户提供正确的结果。 @Thomas 在某些情况下是正确的,但是,我见过的最常见的想要今年的用例是版权声明,对于它来说,它是否适合那 24 真的并不重要1 月 1 日环游世界的时间。 顺便说一句,那个代码是错误的,Y 必须像 cabishek 的回答一样被引用。 如果我得到月份,即“M”,我将如何得到“十一月”到“十一月” @Josh 完整的文档是 docs.djangoproject.com/en/dev/ref/templates/builtins/…,但您正在寻找 F 而不是 M【参考方案3】:

% now 'Y' % 是正确的语法

【讨论】:

【参考方案4】:

在我的模板中,除了当年之外,我还需要一个包含 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>

【讨论】:

@mohammedqudah,取决于您的需求!【参考方案5】:

我在基于 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

【讨论】:

以上是关于如何在 Django 模板中显示当前年份?的主要内容,如果未能解决你的问题,请参考以下文章

如何从freemarker模板中获取当前年份

如何将数据值从视图传递到 Django 中的模板?

如何在 Django 模板中获取当前 URL?

如何在 Django 模板中获取当前 URL?

如何在 Django 模板中获取当前 URL?

如何在angular6中使用打字稿获取当前年份