2

我正在使用Django 的 naturalday 模板标签,但是如果提供的日期不是今天、明天或昨天,我该如何格式化日期字符串?

这是我的模板字符串:

 Date: {{ result_date|naturalday }}

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

文档说:

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

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

4

2 回答 2

5

在 之后传递格式:,例如在日期过滤器中:

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

希望有帮助。

于 2013-08-06T10:30:38.560 回答
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,则区域设置指定的格式具有更高的优先级并将被应用。请参阅允许的日期格式字符串。

因此,Feb. 17, 2007如果没有提供格式字符串参数并且DATE_FORMAT未在settings.py.

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

于 2013-08-06T10:32:20.213 回答