2013-08-06 90 views
2

我使用的是Django's naturalday template tag,但如果提供的日期不是今天,明天或者昨天,我如何格式化日期字符串?Django「naturalday」模板過濾器:回退到格式化日期?

這是我的模板字符串:

Date: {{ result_date|naturalday }} 

如果result_date是今天,昨天或明天,那麼該模板顯示自然的字符串。但如果是10天前,我怎樣才能控制日期的格式顯示爲「7月25日」?

文檔說:

對於日期是當前或一天之內,返回「今天」, 「明天」或「昨天」,適當。否則,使用傳入的格式字符串格式化日期 。

「傳入的格式字符串」是什麼意思?

回答

3

傳遞的格式:後,像在date濾波器:

Date: {{ result_date|naturalday:"F d" }} 
  • F是月的文本表示,例如July
  • d是一個月份的一天,2位數字帶有前導零,例如, 25

希望有幫助。

+0

工作,謝謝! – Richard

1

您應該檢查的例子:

例子(「今天」的時候是2007年2月17日):

  • 2007年2月16日成爲昨天。
  • 2007年2月17日成爲今天。
  • 2007年2月18日成爲明天。
  • 如果沒有參數,則根據給定的參數或DATE_FORMAT設置格式化其他日期。

然後約DATE_FORMAT

默認: 'NĴ,Y'(如2003年2月4日)

的默認格式用於任何部分顯示日期字段系統的 。請注意,如果USE_L10N設置爲True,那麼 區域設置的格式將具有更高的優先級,並將應用 。查看允許的日期格式字符串

所以,如果沒有提供格式字符串參數,而不是在settings.py指定DATE_FORMAT將回落到Feb. 17, 2007

alecxe的回答中提供了正常的回退格式字符串。