¿Cómo mostrar el año actual en una plantilla de Django?

3 minutos de lectura

¿Qué es la etiqueta de plantilla incorporada para mostrar el año actual dinámicamente? Como “2011”, ¿cuál sería la etiqueta de plantilla para mostrar eso?

avatar de usuario
Marrón Haldeano

La etiqueta completa para imprimir solo el año actual es {% now "Y" %}. Tenga en cuenta que la Y debe estar entre comillas.

  • Para que conste, {% ahora %} no dará los resultados adecuados para los usuarios que se encuentren en una zona horaria diferente a la del servidor.

    – Tomasz Zieliński

    7 de junio de 2011 a las 13:43

  • @Thomas Cierto para algunos casos, sin embargo, el caso de uso más común que he visto para querer el año actual es un aviso de derechos de autor, y realmente no es tan importante que sea perfecto durante esas 24 horas mientras el 1 de enero se abre paso el mundo.

    – Endófago

    26 de septiembre de 2011 a las 22:42

  • por cierto, ese código está mal, el Y debe citarse como en la respuesta de cabishek.

    – Endófago

    3 de noviembre de 2011 a las 19:41

  • Si obtuviera el mes, es decir, “M”, ¿cómo obtendría “noviembre” a “noviembre”?

    – José

    16 de noviembre de 2017 a las 13:06

  • @Josh los documentos completos son docs.djangoproject.com/en/dev/ref/templates/incorporados/…pero estás buscando F en vez de M

    – Haldean Brown

    28 de noviembre de 2017 a las 20:03

avatar de usuario
Cabhishek

{% now 'Y' %} es la sintaxis correcta

{% now %}

avatar de usuario
hygull

He usado lo siguiente en mi sitio web basado en Django

{% now 'Y' %}

Puede visitarlo y verlo en la parte del pie de página donde he mostrado el año actual usando el código a continuación (la parte CSS se omite, así que use la suya).

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

Y muestra el siguiente texto centrado en el pie de página de mi sitio web.

©2018, PMT Boys hostel 
All rights reserved

En mi plantilla, además del año en curso, necesitaba un menú desplegable del año de vencimiento de la tarjeta de crédito con 20 valores (a partir del año en curso). los select los valores debían ser de 2 dígitos y las cadenas de visualización de 4 dígitos. Para evitar un código de plantilla complejo, escribí esta etiqueta de plantilla simple:

@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)

Y lo usé de la siguiente manera:

<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, ¡depende de tus necesidades!

    – Artesanos de la nube

    15 de diciembre de 2017 a las 23:06

  • @mohammedqudah, ¡depende de tus necesidades!

    – Artesanos de la nube

    15 de diciembre de 2017 a las 23:06

¿Ha sido útil esta solución?