帮助:解析函数/formatdate
formatdate是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
formatdate
日期格式用户化。MediaWiki原生支持。
将ISO 8601日期转换为 月日年 等格式,如10月 1, 2025
。由于支持的格式均不符合中文表述习惯,因此对中文wiki几乎无用。
语法
{{#formatdate: YYYY-MM-DD | 格式 }}
- 日期:必须为YYYY-MM-DD格式(ISO 8601),1月写为01,公元221年写为0221,公元前551写为-0551
- 格式(可选):指定输出格式,支持ISO 8601、dmy、mdy和ymd,默认为用户偏好设置。(dmy,指day month year)
- 输出是HTML,如:
<span class="mw-formatted-date" title="1949-10-01">10月 01, 1949</span>
如果输入日期格式无效或格式化失败,将原样返回输入日期。
用户可以在特殊:参数设置中指定日期格式(默认,或ISO 8601格式)。
示例
- ISO 8601标准格式
{{#formatdate:2025-10-01|ISO 8601}}
→<span class="mw-formatted-date" title="2025-10-01">2025-10-01</span>
→ 2025-10-01 - 支持
- 年/月/日格式
{{#formatdate:2025-10-01|ymd}}
→<span class="mw-formatted-date" title="2025-10-01">2025 10月 1</span>
→ 2025 10月 1 - 月/日/年格式
{{#formatdate:2025-08-01|mdy}}
→<span class="mw-formatted-date" title="2025-08-01">8月 1, 2025</span>
→ 8月 1, 2025 - 日/月/年格式
{{#formatdate:2025-06-01|dmy}}
→<span class="mw-formatted-date" title="2025-06-01">1 6月 2025</span>
→ 1 6月 2025
- 年/月/日格式
- 错误输入示例:
- 输入格式错误时,不会执行格式化,日期将按原样返回。
- 缺少前导零
{{#formatdate:2025-1-1|ISO 8601}}
→2025-1-1
- 错误格式
{{#formatdate:25/12/2025|ISO 8601}}
→25/12/2025
- 特殊场景示例:
- 无效日期
{{#formatdate:2025-02-32|ISO 8601}}
→<span class="mw-formatted-date" title="2025-02-32">2025-02-32</span>
- 无效日期
{{#formatdate:2025-02-32|ymd}}
→<span class="mw-formatted-date" title="2025-02-32">2025 2月 32</span>
- 仅提供月和日
{{#dateformat:25 decEmber|mdy}}
→ 25 decEmber (官方文档描述:如果仅给出月份和日期,则只有 mdy 和 dmy 有效,但实际上似乎不是这样) - 仅提供月和日
{{#dateformat:10-01|mdy}}
→ 10-01 - 负年份处理
{{#formatdate:-0551-09-28|ISO 8601}}
→ -0551-09-28(不支持BC/BCE表示法,需要用负数表示公元前)
- 无效日期
底层代码
- 代码逻辑:
- 获取当前wiki的语言设置
- 根据语言获取对应的日期格式化器
- 如果用户日期格式设置为'default'且提供了默认格式参数,则使用默认格式
- 尝试将输入日期重新格式化为指定格式
- 如果格式化失败,返回原始输入
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。