我在django上使用了now模板标签,并意识到它没有办法将月格式化为零。因为javascript有一个从零开始的月份,可以很方便。
我想要快速解决这个问题的方式是{% now 'd, m-1, Y' %}
。虽然它解决了这个问题,但我并不完全满意。
有更优雅的方法吗?或者只是写一个模板标签?
答案 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()函数接受的格式返回一个简单的日期。