# Django 5.2.8 documentation

# `django.contrib.humanize`

一套 Django 模板过滤器，用于为数据添加 “人情味”。

要激活这些过滤器，请在你的 `INSTALLED_APPS` 配置中添加 `'django.contrib.humanize'`。添加完毕后，在模板中使用 `{% load humanize %}`，你就可以使用以下过滤器了。

## `apnumber`

对于数字 1-9，返回拼出的数字。否则，返回数字。这遵循了美联社的风格。

举例：

- `1` 变成 `one`。

- `2` 变成 `two`。

- `10` 变成 `10`。

你可以传入一个整数或整数的字符串表示。

## `intcomma`

将一个整数或浮点数（或其中之一的字符串表示法）转换为每三位数包含逗号的字符串。

举例：

- `4500` 变成 `4,500`。

- `4500.2` 变成 `4,500.2`。

- `45000` 变成 `45,000`。

- `450000` 变成 `450,000`。

- `4500000` 变成 `4,500,000`。

本地格式化 如果启用，例如使用 `''de` 语言，将得到尊重：

- `45000` 变成 `'45.000'`。

- `450000` 变成 `'450.000'`。

## `intword`

将大整数（或整数的字符串表示）转换为友好的文本表示。将 `1.0` 翻译成单数，将所有其他数值翻译成复数，这对某些语言可能不正确。对于 100 万以上的数字效果最好。

举例：

- `1000000` 变成 `1.0 million`。

- `1200000` 变成 `1.2 million`。

- `1200000000` 变成 `1.2 billion`。

- `-1200000000` 变成 `-1.2 billion`。

支持最高 10^100（Googol）的数值。

本地格式化 如果启用，例如使用 `''de` 语言，将得到尊重：

- `1000000` 变成 `'1,0 Million'`。

- `1200000` 变成 `'1,2 Millionen'`。

- `1200000000` 变成 `'1,2 Milliarden'`。

- `-1200000000` 变成 `'-1,2 Milliarden'`。

## `naturalday`

对于当天或一天之内的日期，根据情况返回 “today”、“tomorrow” 或 “yesterday”。否则，使用传入的格式字符串格式化日期。

参数： 日期格式化字符串，如 `date` 标签所述。

例子（当 'today' 是 2007 年 2 月 17 日）：

- `16 Feb 2007` 变成 `yesterday`。

- `17 Feb 2007` 变成 `today`。

- `18 Feb 2007` 变成 `tomorrow`。

- 任何其他的日子都会根据给定的参数进行格式化，如果没有给定参数，则根据 `DATE_FORMAT` 配置。

## `naturaltime`

对于日期时间值，返回一个字符串，代表多少秒、多少分钟或多少小时前 —— 如果值超过一天，则返回到 `timesince` 格式。如果日期时间值是在未来，返回值将自动使用一个适当的短语。

例子（当 'now' 是 2007 年 2 月 17 日 16:30:00）：

- `17 Feb 2007 16:30:00` 变成 `now`。

- `17 Feb 2007 16:29:31` 变成 `29 seconds ago`。

- `17 Feb 2007 16:29:00` 变成 `a minute ago`。

- `17 Feb 2007 16:25:35` 变成 `4 minutes ago`。

- `17 Feb 2007 15:30:29` 变成 `59 minutes ago`。

- `17 Feb 2007 15:30:01` 变成 `59 minutes ago`。

- `17 Feb 2007 15:30:00` 变成 `an hour ago`。

- `17 Feb 2007 13:31:29` 变成 `2 hours ago`。

- `16 Feb 2007 13:31:29` 变成 `1 day, 2 hours ago`。

- `16 Feb 2007 13:30:01` 变成 `1 day, 2 hours ago`。

- `16 Feb 2007 13:30:00` 变成 `1 day, 3 hours ago`。

- `17 Feb 2007 16:30:30` 变成 `30 seconds from now`。

- `17 Feb 2007 16:30:29` 变成 `29 seconds from now`。

- `17 Feb 2007 16:31:00` 变成 `a minute from now`。

- `17 Feb 2007 16:34:35` 变成 `4 minutes from now`。

- `17 Feb 2007 17:30:29` 变成 `an hour from now`。

- `17 Feb 2007 18:31:29` 变成 `2 hours from now`。

- `18 Feb 2007 16:31:29` 变成 `1 day from now`。

- `26 Feb 2007 18:31:29` 变成 `1 week, 2 days from now`。

## `ordinal`

将一个整数转换为字符串的序数。

举例：

- `1` 变成 `1st`。

- `2` 变成 `2nd`。

- `3` 变成 `3rd`。

你可以传入整数或整数的字符串表示。负整数将原样返回。