社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103
帮助:解析函数/time
代码 | 说明 | 当前输出值 (清除此页面缓存以更新结果) |
---|---|---|
年 | ||
Y
|
4位数表示的年。 | 2024 |
y
|
2位数表示的年。 | 24 |
L
|
1表示闰年(Leap year),0表示非闰年。 | 1 |
o [注 1]
|
ISO-8601 规定的该周所属年份。[注 2] | 2024[注 3] |
月 | ||
n
|
月份号,无前导零。 | 12 |
m
|
月份号,有前导零。 | 12 |
M
|
月份名称缩写,使用网站语言。(英文结果为 Dec )
|
12月 |
F
|
月份名称全称,使用网站语言。(英文结果为 December )
|
12月 |
xg
|
月份名称全称,使用网站语言的属格(Genitive)形式,注意区分其与主格(Nominative)形式的区别。 这项功能在斯拉夫语族(Slavic languages)中十分重要,如波兰语、俄语、白俄罗斯语、捷克语、斯洛伐克语、斯洛文尼亚语、乌克兰语等。 在中文环境下: |
对于中文:
(主格) {{#time:Y F d|20 June 2010|zh}} → (属格) {{#time:Y xg d|20 June 2010|zh}} → |
周 | ||
W
|
ISO 8601 规定的周数,有前导零。 | 51 |
日 | ||
j
|
月份内的日期号,无前导零。 | 21 |
d
|
月份内的日期号,有前导零。 | 21 |
z
|
年份内的日期号 (1月1日 = 0)。 注意:要获得 ISO 规定的日期号,需加上1。 |
355 |
D
|
星期的缩写。国际上不通用。 | 六 |
l
|
星期的全称。国际上不通用。 | 星期六 |
N
|
ISO 8601 规定的星期编号(星期一 = 1,星期日 = 7)。 | 6 |
w
|
星期编号(星期日 = 0,星期六 = 6)。 | 6 |
时 | ||
a
|
早上为 am (00:00:00 → 11:59:59);其他时间为 pm (12:00:00 → 23:59:59)。
|
pm |
A
|
上方 a 的大写形式。
|
PM |
g
|
12小时制的时,无前导零。 | 12 |
h
|
12小时制的时,有前导零。 | 12 |
G
|
24小时制的时,无前导零。 | 12 |
H
|
24小时制的时,有前导零。 | 12 |
分 和 秒 | ||
i
|
小时后的分钟数,有前导零。 | 39 |
s
|
分钟后的秒钟数,有前导零。 | 28 |
U
|
UNIX时间(Unix time)。从格林尼治时间(GMT)1970年1月1日00:00:00开始计的秒钟数。 | 1734784768 |
时区(需 MediaWiki 1.22wmf2) | ||
e
|
时区标识符。 | UTC |
I
|
当前日期是否使用日光节约时间(夏令时)。 | 0 |
O
|
与格林尼治时间(GMT)的时差。 | +0000 |
P
|
与格林尼治时间(GMT)的时差,带有冒号分隔。 | +00:00 |
T
|
时区缩写。 | UTC |
Z
|
以秒计的时差。 | 0 |
杂项 | ||
t
|
当前月份的天数。 | 31 |
c
|
ISO 8601 格式的日期,等价于 Y-m-d"T"H:i:s+00:00 。
|
2024-12-21T12:39:28+00:00 |
r
|
RFC 5322 格式的日期,等价于 D, j M Y H:i:s +0000 ,其中星期名和月份名国际上不通用。
|
Sat, 21 Dec 2024 12:39:28 +0000 |
非公历日历 | ||
伊斯兰历(Islamic calendar),又称 希吉来历(Hijri calendar) | ||
xmj
|
月份内的日期号。 | 19 |
xmF
|
月份名称全称。 | 主马达·阿色尼月 |
xmn
|
月份号。 | 6 |
xmY
|
全长表示的年。 | 1446 |
伊朗历(Iranian calendar),又称 贾拉利历(Jalali calendar) | ||
xij
|
月份内的日期号。 | 1 |
xiF
|
月份名称全称。 | Dey |
xin
|
月份号。 | 10 |
xiY
|
全长表示的年。 | 1403 |
xiy
|
2位数表示的年。 | 03 |
希伯来历(Hebrew calendar) | ||
xjj
|
月份内的日期号。 | 20 |
xjF
|
月份名称全称。 | 基斯流月 |
xjt
|
当前月份的天数。 | 30 |
xjx
|
属格形式的月份名称。 | Kislev |
xjn
|
月份号。 | 3 |
xjY
|
全长表示的年。 | 5785 |
泰国历(Thai solar calendar) | ||
xkY
|
泰国历的全长表示的年。 注意:公历1941年前的年份,1月到3月的范围内,计算得到的泰国历年份不正确。(原因) |
2567 |
民国纪年(Minguo calender) 朝鲜历(North Korean calendar),又称 主体历(Juche calendar) | ||
xoY
|
全长表示的年。 | 113 |
日本年号(Japanese era name, or Japanese nengo) | ||
xtY
|
全长表示的年(带有年号)。 | 令和6 |
转换标志 | ||
xn
|
将下一个数字代码转换为原始 ASCII 格式数字。 | 在印地语中, {{#time:H, xnH}} 得到的是 ०६, 06 。
|
xN
|
与 xn 功能类似。但它持续起作用到字串末尾,或字串中的下一个 xN 处。
| |
xr
|
将下一个数字代码转换为罗马数字格式。仅对 10,000 以内的数字有效 (MediaWiki 1.20 之前,仅对 3,000 以内的数字有效)。 |
{{#time:xrY}} → MMXXIV
|
xh
|
将下一个数字代码转换为希伯来数字格式。 | {{#time:xhY}} → ב'כ"ד
|
将日期和/或时间(公历)按格式字串规定的格式进行转换。
可自行指定日期/时间对象,默认使用魔术字(Magic word)
的值(该值使用世界协调时间,UTC),也就是页面最近一次渲染为HTML的时间。
出自扩展 ParserFunctions。
- 格式
- {{#time: 格式字串}}
- {{#time: 格式字串|日期/时间对象}}
- {{#time: 格式字串|日期/时间对象|语言代码}}
- 在右边的表格中列出了支持的格式控制代码。'格式字串'中的任何不被识别的字符将原样输出,包括空格(系统不用它们来编译代码)。
- 还有两种方法可以使'格式字串'内的字符原样输出:
- 反斜杠
\
后加字符,可以原样输出单个字母: - 一对半角双引号
" "
内的字符被当作文字,会原样输出,不带双引号。
- 反斜杠
- 另外,还可以用
xx
来输出单个字母x
。 - 例子
- {{#time:\m}}→
m
- {{#time:\xg}}→
x12
(x
被原样输出,g
被当作格式控制代码) - {{#time: Y-m-d}}→
2024-12-21
- {{#time:→[[Y]]m d}}
2024 12 21
- {{#time:→[[Y (year)]]}}
2024 (24UTCpmSat, 21 Dec 2024 12:39:28 +0000)
(year被当作格式控制代码y
、e
、a
、r
) - {{#time:→[[Y "(year)"]]}}
2024 (year)
- {{#time: i's"}}→
39'28"
- '日期/时间对象'可以使用任何PHP中strtotime()函数支持的格式。可以使用绝对时间(如
20 December 2000
)和相对时间(如+20 hours
):- {{#time: r|now}}→
Sat, 21 Dec 2024 12:39:28 +0000
- {{#time: r|+2 hours}}→
Sat, 21 Dec 2024 14:39:28 +0000
- {{#time: r|now + 2 hours}}→
Sat, 21 Dec 2024 14:39:28 +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}}→
错误:无效时间。
- '语言代码'使用的是ISO 639-3标准,可以显示所选语言的时间格式:
- {{#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
- 译者注:以上三例本wiki内不起作用,因为不支持该语言。
- 如果需要在计算时使用UNIX时间,可以在UNIX时间前加上
@
:- {{#time: U|now}}→
1734784768
- {{#time: r|@1485582296}}→
Sat, 28 Jan 2017 05:44:56 +0000
- 注意:可接受的输入时间范围是0111年1月1日至9999年12月31日。100年到110年的各个格式控制代码的输出不一致:
Y
和L
按照100-110年来计算;但r
、D
、l
和U
是按照2000-2010年来计算的:- {{#time: d F Y|29 Feb 0100}}→
01 3月 0100
- 上面的结果正确,但是:
- {{#time: r|29 Feb 0100}}→
Mon, 01 Mar 0100 00:00:00 +0000
- 上面的结果错误,因为100年不是闰年,但2000年是闰年,上面的结果是按照2000年计算的。
- 超过9999年会得到不正确的结果:
- {{#time: d F Y|15 April 10000}}→
错误:无效时间。
- {{#time: r|10000-4-15}}→
Sat, 15 Apr 2000 10:00:00 +0000
- 0-99年被当作2000-2069年、1970-1999年来处理,除非使用4位数年格式来表示这些年份:
- {{#time: d F Y|1 Jan 6}}→
01 1月 2006
- {{#time: d F Y|1 Jan 06}}→
01 1月 2006
- {{#time: d F Y|1 Jan 006}}→
01 1月 2006
- {{#time: d F Y|1 Jan 0006}}→
01 1月 0006
(使用了4位数年)
星期名称支持100-110年和1753年以后的年份。111-1752年的r
中星期输出为Unknown
,l
的输出为<>
,且这几年的r
输出值不能当作有效的输入值。- 译者注:
- 测试了一些111-1752之间的年份,已经可以正常显示星期,且正确:
- {{#time: r|1 Jan 1600}}→
Sat, 01 Jan 1600 00:00:00 +0000
(应为星期六) - {{#time: r|23 Dec 802}}→
Mon, 23 Dec 0802 00:00:00 +0000
(应为星期一) - 使用日期转换进行验证。
- 可以指定完整的绝对日期,或者是一部分,此函数会将缺少的部分用当前日期的值填补:
- {{#time: Y|January 1}}→
2024
- 注意:填补功能在不同情况下填补不同的内容:
- {{#time: Y m d H:i:s|June}}→
2024 06 21 00:00:00
(使用了一天的开始时刻,填补了当前月份内的日期号、年份) - {{#time: Y m d H:i:s|2003}}→
2003 12 21 00:00:00
(使用了一天的开始时刻,填补了当前年份内的日期号)
- 在MediaWiki r86805之后,4位数字一概会被认为是年份,而非小时与分钟:
- {{#time: Y m d H:i:s|1959}}→
1959 12 21 00:00:00
- 6位数字会被认为是小时、分钟和秒钟,如果得到的时间不正确,则会报错(一概不会当作年份和月份):
- {{#time: Y m d H:i:s|195909}}→
2024 12 21 19:59:09
(被当作时分秒而不是年月) - {{#time: Y m d H:i:s|196009}}→
错误:无效时间。
(即使19:60:09不是正确的时间,196009也不会被当作年月)
- 函数定量计算天数来得到日期:
- {{#time: Y F d|January 0 2008}}→
2007 12月 31
- {{#time: F d|January 32}}→
错误:无效时间。
(一个月超过31天的话,会报错) - {{#time: F d|February 29 2008}}→
2月 29
- {{#time: F d|February 29 2007}}→
3月 01
- {{#time:Y F|now -1 months}}→
2024 11月
#time
中'格式字串'的总长度限制为6000字符。- 关于时区
- 解析函数
#time
中有一个bug(更确切的说是PHP日期时间的bug),不允许传入非整数的相对时差。这个问题在整点时区不会出现,如东部夏令时间(EDT):- {{#time:g:i A|-4 hours}}→
8:39 AM
- 但是,委内瑞拉(委内瑞拉标准时间,VET)与世界协调时间(UTC)的时差是-4.5小时,如果直接输入则不会得到正确的结果,如下:
- {{#time:g:i A|-4.5 hours}}→
9:39 PM
- 可以将时差转换为分钟或者秒钟来解决这个问题:
- {{#time:g:i A|-270 minutes}}→
8:09 AM
- {{#time:g:i A|-16200 seconds}}→
8:09 AM
- (上述方法由此函数开发者 Tim Starling 提供)