Django模板标签的零月份

时间:2014-03-29 01:20:34

标签: python django

我在django上使用了now模板标签,并意识到它没有办法将月格式化为零。因为javascript有一个从零开始的月份,可以很方便。

我想要快速解决这个问题的方式是{% now 'd, m-1, Y' %}。虽然它解决了这个问题,但我并不完全满意。

有更优雅的方法吗?或者只是写一个模板标签?

2 个答案:

答案 0 :(得分:0)

{% now %}模板标记接受与date模板过滤器相同的格式字符串。

" M"是一个从零开始的数字月份。所以你会这样做:

{% now "d, m, Y" %}

哪个输出:

28, 03, 2014

有关格式化日期和时间的详细信息,请参阅:https://docs.djangoproject.com/en/1.6/ref/templates/builtins/#date

Python中的月份是基于1的:

>>> from datetime import date
>>> d = date.today()
>>> d.month
3

答案 1 :(得分:0)

我遇到了同样的问题......这是我用简单的自定义过滤器做的方法:

@register.filter(name='dateWithZeroBasedMonth')
def dateWithZeroBasedMonth(value):
    if value is None:
        value = date.today()
    year = value.year
    month = value.month
    day = value.day
    return str(year) + "," + str(month-1) + "," + str(day)

不优雅,但它适用于我,并以Javascript的Date()函数接受的格式返回一个简单的日期。