2014-03-29 67 views
0

我在django上使用了now模板標籤,並意識到它沒有辦法將月份格式設置爲零。原因JavaScript的月份爲零,可以很方便。Django模板標籤上的基於零的月份

我想要快速解決這個問題的方法是{% now 'd, m-1, Y' %}。雖然解決了這個問題,但我並不完全滿意。

有沒有更好的方法來做到這一點?或者只是寫一個模板標籤?

回答

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 
+0

這是三月,我們在同一個月。對吧? –

+0

這是正確的。 – Brandon

+0

那不是基於零的。 –

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()函數接受的格式返回簡單的日期。