Django“naturalday”模板过滤器:回退到格式化的日期?

时间:2013-08-06 10:27:28

标签: django django-templates django-template-filters

我正在使用Django's naturalday template tag,但如果提供的日期不是今天,明天或昨天,我如何格式化日期字符串?

这是我的模板字符串:

 Date: {{ result_date|naturalday }}

如果result_date今天,昨天或明天,则模板显示自然字符串。但如果是10天前,如何控制日期的格式显示为“7月25日”?

文档说:

  

对于当天或一天内的日期,请返回“今天”,   “明天”或“昨天”,视情况而定。否则,请格式化日期   使用传入的格式字符串。

“传入的格式字符串”是什么意思?

2 个答案:

答案 0 :(得分:4)

:之后传递格式,如date过滤器:

Date: {{ result_date|naturalday:"F d" }}
  • F是月份的文字表示,例如July
  • d是一个月中的某一天,带有前导零的2位数字,例如25

希望有所帮助。

答案 1 :(得分:1)

您应该查看示例:

  

示例('今天'是2007年2月17日):

     
      
  • 2007年2月16日成为昨天。
  •   
  • 2007年2月17日成为今天。
  •   
  • 2007年2月18日成为明天。
  •   
  • 如果没有给出参数,则根据给定的参数或DATE_FORMAT设置格式化任何其他日期。
  •   

然后关于DATE_FORMAT

  

默认值:'N j,Y'(例如2003年2月4日)

     

用于在任何部分中显示日期字段的默认格式   系统的。注意,如果USE_L10N设置为True,那么   locale-dictated格式具有更高的优先级并将被应用   代替。请参阅允许的日期格式字符串。

如果没有提供格式字符串参数且Feb. 17, 2007中未指定DATE_FORMAT,它将回退到settings.py

正常的后退格式字符串在alecxe的答案中提供。