如何在 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>
©
% now 'Y' %,
PMT Boys hostel <br>
All rights reserved
</p>
</center>
</footer>
它在我的网站页脚中显示以下居中文本。
©2018, PMT Boys hostel
All rights reserved
【讨论】:
以上是关于如何在 Django 模板中显示当前年份?的主要内容,如果未能解决你的问题,请参考以下文章