【问题标题】:How to display month name by number?如何按数字显示月份名称?
【发布时间】:2011-11-15 04:35:38
【问题描述】:

我有一个代表月份的数字,我想用月份名称替换它,日期过滤器不起作用:

{{ monthnumber|date:"M" }}

我想放置两个链接 - 下个月和上个月,但我只有月份数。

怎么做?

【问题讨论】:

标签: django django-templates


【解决方案1】:

您需要一个自定义模板过滤器来将数字转换为月份名称。如果您使用标准库中的 calendar 模块,则非常简单:

import calendar

@register.filter
def month_name(month_number):
    return calendar.month_name[month_number]

使用示例: {{ 5|month_name }} 将输出May

【讨论】:

  • user1242163 的回答不需要自定义过滤器。
  • user1242163 的回答确实需要一个日期时间对象,而不是一个整数
【解决方案2】:

好吧,这不是:

{{ monthnumber|date:"M" }}

你应该试试这个:

{{ datetimeobj|date:"M" }}

【讨论】:

    【解决方案3】:

    你应该使用:

    {{ datetimeobj|date:"F" }}
    

    阅读this

    【讨论】:

      【解决方案4】:

      以防万一您不想格式化传递给 Django 模板的日期对象(就像其他答案清楚显示的那样),而是您更愿意简单地获取当前日期的月份编号; 这是您可以用来执行此操作的内置标签:

      {% now "n" %}
      

      来自文档:https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#now

      这里是您可以与{% now [""] %} 一起使用的内置日期标签

      https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#date

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-03
        • 2015-01-19
        • 2023-03-20
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 2014-02-24
        • 1970-01-01
        相关资源
        最近更新 更多