帮助:时间函数
本页为操作指南,用于介绍中文维基百科社群的一些实现和操作方式。 本文只是论述,不属于方针或指引。如果本指南与方针或指引起冲突或不一致,请以方针或指引的条文为准。 |
时间函数,或#time,是MediaWiki提供的解析器函式,可用来显示各式各样的时间格是。例如:
- {{#time:j F Y}} 显示: 2 12月 2024,当前的UTC日期
- {{#time:F j, Y}} 显示: 12月 2, 2024,当前的日期(月/日/年格式)
- {{#time:Y-m-d}} 显示: 2024-12-02,当前的ISO 8601日期
- {{#time:H:i:s}} 显示: 21:51:49,现在时间
- {{#time:l}} 显示: "星期一",今日为星期几
- {{#time:\d\a\y D}} 显示 "day 一" 显示星期的数字
- {{#time:F j. Y|7 May 2013|de}} 显示 "Mai 7. 2013",德文的月份与日期
- {{#time:xij xiF xiY}} 显示 "12 Azar 1403"显示现在于伊朗历的日期
共有超过35个日期格式代码(见下文:时间格式代码)用来排序年、月、日、时、分与秒等(如 'j' 指日期、 'H' 指小时、'l' 指星期几)。其他字母会被视为普通文字,若遇到字母已被代码使用的情形可使用反斜线(如'\d'
显示 'd')。参数2可指定其他日期/时间(以几种典型格式中的任何一种),参数3可以使用两位字母语言代码将月份名称翻译为另一种语言。
除了格里历,#time函数还可以使用x代码(x_)将日期转换为其他历法:伊斯兰历(xm)、伊朗历(xi)、希伯来历(xj)、泰国历(xk)、民国纪年(xo)或日本历(xt)。例如,若欲显示现在于伊斯兰历的月份与年份,可输入:{{#time:xmF xmY}} → 主马达·敖外鲁月 1446.
- time函数还可以使用x代码(x_)显示其他数字系统中的数字,包括:印地语(xn或xN)、希伯来语(xh)和罗马数字(xr)。例如:欲用罗马数字显示现在时间(时:分:秒,H:i:s),可输入:{{#time:xrH:xri:xrs}} → XXI:LI:XLIX。请参阅下方的示例:
一般功能
[编辑]- time解析器函数需要一个公历的日期和/或时间,并根据给定的语法对其进行格式化。可以指定日期/时间对象;默认值是魔术字{{CURRENTTIMESTAMP}}–的值—也就是页面最后呈现为HTML的时间。
- {{#time: format string }}
- {{#time: format string | date/time object }}
- {{#time: format string | date/time object | language code }}
下表列出了可接受的格式代码列表。格式化字符串中任何未能识别的字符将维持不变(包括空格)。在格式化字符串中还有两种转义字符的方法:
- 反斜线与一个紧随在后的字母 → 单个文字字符
- Characters enclosed in double quotes are considered literal characters, and the quotes are removed.
#反斜杠后跟一个格式化字符被解释为单个文字字符 #用双引号括起来的字符被认为是文字字符,并且引号被删除。
In addition, the digraph xx is interpreted as a single literal "x".
- {{#time: Y-m-d }} → 2024-12-02
- {{#time: [[Y]] m d }} → 2024 12 02
- {{#time: [[Y (year)]] }} → 2024 (24UTCpmMon, 02 Dec 2024 21:51:49 +0000)
- {{#time: [[Y "(year)"]] }} → 2024 (year)
- {{#time: i's" }} → 51'49"
The date/time object can be in any format accepted by PHP's strtotime() function. Both absolute (e.g., 20 December 2000) and relative (e.g., +20 hours) times are accepted.
- {{#time: r|now}} → Mon, 02 Dec 2024 21:51:49 +0000
- {{#time: r|+2 hours}} → Mon, 02 Dec 2024 23:51:49 +0000
- {{#time: r|now + 2 hours}} → Mon, 02 Dec 2024 23:51:49 +0000
- {{#time: r|20 December 2000}} → Wed, 20 Dec 2000 00:00:00 +0000
- {{#time: r|December 20, 2000}} → Wed, 20 Dec 2000 00:00:00 +0000
- {{#time: r|2000-12-20}} → Wed, 20 Dec 2000 00:00:00 +0000
- {{#time: r|2000 December 20}} → 错误:时间格式不正确
The two-letter language code in ISO 639-1 allows the string to be displayed in the chosen language.
- {{#time:d F Y|1988-02-28|nl}} → 28 februari 1988
- {{#time:l|now|uk}} → понеділок
- {{#time:d xg Y|20 June 2010|pl}} → 20 czerwca 2010
If you've calculated a Unix timestamp, you may use it in date calculations by pre-pending an @ symbol.
- {{#time: U | now }} → 1733176309
- {{#time: r|@1733176309}} → Mon, 02 Dec 2024 21:51:49 +0000
可接受的输入范围是0111年1月1日~9999年12月31日。For the years 100 through 110 the output is inconsistent, Y and leap years are like the years 100-110, r, D, l and U are like interpreting these years as 2000-2010. {{#time: d F Y | 29 Feb 0100 }} → 01 3月 0100 (correct, no leap year), but Year numbers 0-99 are interpreted as 2000-2069 and 1970-1999, even when written with leading zeros:
|
Full or partial absolute dates can be specified; the function will "fill in" parts of the date that are not specified using the current values:
- {{#time: Y | January 1 }} → 2024
另提供了许多选项。
时间格式代码
[编辑]下表介绍了日期/时间格式的35种不同代码、其他语言的月份代码以及用于转换为其他历法或数字系统的x代码(x_)。
代码 | 描述 | 输出 (清除快取以更新页面) |
---|---|---|
年 | ||
Y | 4位数的年份 | 2024 |
y | 2位数的年份 | 24 |
L | 闰年则显示1,非闰年则显示0。 | 1 |
o ¹ | ISO 8601的年份。 ² | 2024 ³ |
¹ 需要 PHP 5.1.0 或以上的版本,与rev:45208。 | ||
月 | ||
n | 月份,不自动补0。 | 12 |
m | 月份,自动补0。 | 12 |
M | 该网站所用的语言中,月份名称的缩写。 | 12月 |
F | 该网站所用的语言中,月份名称的全称。 | 12月 |
xg | 以属格形式输出完整的月份名称。此功能用于区分属格和主格形式的网站语言。 | 如波兰语:
(主格) {{#time:d F Y|20 June 2010}|pl}} → 20 czerwiec 2010 (属格) {{#time:d xg Y|20 June 2010|pl}} → 20 czerwca 2010 |
周 | ||
W | ISO 8601 周数(该年中的第几周),自动补0。 | 49 |
日 | ||
j | 日期(该月中的第几天),不自动补0。 | 2 |
d | 日期(该月中的第几天),自动补0。 | 02 |
z | 日期(该年中的第n-1天,如1月1日 = 0) [[#ref_{{{1}}}|^]] 若要求ISO的日期码,请将这个数字加1。 |
336 |
D | 星期几的缩写。此用途很少国际化。 | 一 |
l | 星期几的完整名称。 很少国际化。 | 星期一 |
N | ISO 8601 中的星期几(星期一 = 1,星期天 = 7)。 | 1 |
w | 星期几的代码(中文不变,英文星期日 = 0,星期六 = 6)。 | 1 |
时 | ||
a | 中午12点以前(00:00:00 → 11:59:59),输出为"am";中午12点及以后(12:00:00 → 23:59:59),输出为"pm"。 | pm |
A | 同上,但为大写。 | PM |
g | 显示12小时制的时间,不自动补0。 | 9 |
h | 显示12小时制的时间,自动补0。 | 09 |
G | 显示24小时制的时间,不自动补0。 | 21 |
H | 显示24小时制的时间,自动补0。 | 21 |
分与秒 | ||
i | 显示当前为几分,自动补0。 | 51 |
s | 显示当前为几秒,自动补0。 | 49 |
U | 显示自1970年1月1日 00:00:00 GMT 以后为第几秒。 | 1733176309 |
时区(1.22wmf2) | ||
e | 时区标识符。 | UTC |
I | 当前日期是否在夏令时(若是则显示1,不是则显示0)。 | 0 |
O | 与格林威治标准时间(GMT)的差距 | +0000 |
P | 与格林威治标准时间的差距(带冒号) | +00:00 |
T | 时区缩写。 | UTC |
Z | 以秒为单位的时区偏移量。 | 0 |
杂项 | ||
t | 当前月份的天数。 | 31 |
c | ISO 8601格式化日期,等价于Y-m-d"T"H:i:s+00:00。 | 2024-12-02T21:51:49+00:00 |
r | RFC 5322格式化日期,等价于D, j M Y H:i:s +0000,但星期几名称和月份名称未国际化。 | Mon, 02 Dec 2024 21:51:49 +0000 |
非公历历法 | ||
伊斯兰历 | ||
xmj | 该月中的第几天。 | 30 |
xmF | 完整月份名称。 | 主马达·敖外鲁月 |
xmn | 该年中的第几个月。 | 5 |
xmY | 完整年份。 | 1446 |
伊朗历 | ||
xij | 该月中的第几天。 | 12 |
xiF | 完整月份名称。 | Azar |
xin | 该年中的第几个月。 | 9 |
xiY | 完整年份。 | 1403 |
xiy | 2位数的年份 | 03 |
Hebrew | ||
xjj | 该月中的第几天。 | 1 |
xjF | 完整的月份名称 | 基斯流月 |
xjt | 该月份中的天数。 | 30 |
xjx | 该月名称的属格。 | Kislev |
xjn | 第几月。 | 3 |
xjY | 完整年份。 | 5785 |
泰国阳历 | ||
xkY | 完整年份。 | 2567 |
民国纪年 | ||
xoY | 完整年份。 | 113 |
日本纪年 | ||
xtY | 完整年份。 | 令和6 |
Flags | ||
xn | 将下一个数字代码格式化为原始ASCII码。 | 在印地语,{{#time:H, xnH}}产生०६, 06. |
xN | 如xn,但是作为一个切换标志,直到字符串结尾或直到字符串中下一次出现xN。 | |
xr | 将下一个数字化为罗马数字。只适用于数字小于10,000的数 (在 pre MediaWiki 1.20数字仅能小于3000)。 |
{{#time:xrY}} → MMXXIV |
xh | 将下一个数字化为希伯来数字。 | {{#time:xhY}} → ב'כ"ד |
参见
[编辑]- Template:Time,可显示现在的日期/时间
- Template:Now,可显示当前日期/时间的句子
- Template:TODAY,仅显示现在日期(日/月/年)
- mw:Help:Extension:ParserFunctions # #time, developer's documentation page