帮助:时间函数

时间函数,或#time,是MediaWiki提供的解析器函式,可用来显示各式各样的时间格是。例如:

  • {{#time:j F Y}}                显示: 10 11月 2024,当前的UTC日期
  • {{#time:F j, Y}}               显示: 11月 10, 2024,当前的日期(月/日/年格式)
  • {{#time:Y-m-d}}                显示: 2024-11-10,当前的ISO 8601日期
  • {{#time:H:i:s}}                显示: 09:23:53,现在时间
  • {{#time:l}}                    显示:  "星期日",今日为星期几
  • {{#time:\d\a\y D}}             显示  "day 日" 显示星期的数字
  • {{#time:F j. Y|7 May 2013|de}}            显示  "Mai 7. 2013",德文的月份与日期
  • {{#time:xij xiF xiY}}          显示  "20 Aban 1403"显示现在于伊朗历的日期

共有超过35个日期格式代码(见下文:时间格式代码)用来排序年、月、日、时、分与秒等(如 'j' 指日期、 'H' 指小时、'l' 指星期几)。其他字母会被视为普通文字,若遇到字母已被代码使用的情形可使用反斜线(如'\d'显示 'd')。参数2可指定其他日期/时间(以几种典型格式中的任何一种),参数3可以使用两位字母语言代码将月份名称翻译为另一种语言。

除了格里历,#time函数还可以使用x代码(x_)将日期转换为其他历法:伊斯兰历(xm)、伊朗历(xi)、希伯来历(xj)、泰国历(xk)、民国纪年(xo)或日本历(xt)。例如,若欲显示现在于伊斯兰历的月份与年份,可输入:{{#time:xmF xmY}} → 主马达·敖外鲁月 1446.

  1. time函数还可以使用x代码(x_)显示其他数字系统中的数字,包括:印地语(xn或xN)、希伯来语(xh)和罗马数字(xr)。例如:欲用罗马数字显示现在时间(时:分:秒,H:i:s),可输入:{{#time:xrH:xri:xrs}} → IX:XXIII:LIII。请参阅下方的示例:

一般功能

  1. time解析器函数需要一个公历的日期和/或时间,并根据给定的语法对其进行格式化。可以指定日期/时间对象;默认值是魔术字{{CURRENTTIMESTAMP}}–的值—也就是页面最后呈现为HTML的时间。
{{#time: format string }}
{{#time: format string | date/time object }}
{{#time: format string | date/time object | language code }}

下表列出了可接受的格式代码列表。格式化字符串中任何未能识别的字符将维持不变(包括空格)。在格式化字符串中还有两种转义字符的方法:

  1. 反斜线与一个紧随在后的字母 → 单个文字字符
  2. 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-11-10
{{#time: [[Y]] m d }}2024 11 10
{{#time: [[Y (year)]] }}2024 (24UTCamSun, 10 Nov 2024 09:23:53 +0000)
{{#time: [[Y "(year)"]] }}2024 (year)
{{#time: i's" }}23'53"

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}}Sun, 10 Nov 2024 09:23:53 +0000
{{#time: r|+2 hours}}Sun, 10 Nov 2024 11:23:53 +0000
{{#time: r|now + 2 hours}}Sun, 10 Nov 2024 11:23:53 +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 }}1731230633
{{#time: r|@1731230633}}Sun, 10 Nov 2024 09:23:53 +0000

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
² 大致上与Y值相同,但若ISO周数(W)属于上一年或下一年,则会显示上一年或下一年的年份。
³ 如果未满足¹,将输出文字o

n 月份,不自动补0。 11
m 月份,自动补0。 11
M 该网站所用的语言中,月份名称的缩写。 11月
F 该网站所用的语言中,月份名称的全称。 11月
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。 45
j 日期(该月中的第几天),不自动补0。 10
d 日期(该月中的第几天),自动补0。 10
z 日期(该年中的第n-1天,如1月1日 = 0
[[#ref_{{{1}}}|^]] 若要求ISO的日期码,请将这个数字加1。
314
D 星期几的缩写。此用途很少国际化。
l 星期几的完整名称。 很少国际化。 星期日
N ISO 8601 中的星期几(星期一 = 1,星期天 = 7)。 7
w 星期几的代码(中文不变,英文星期日 = 0,星期六 = 6)。 0
a 中午12点以前(00:00:00 → 11:59:59),输出为"am";中午12点及以后(12:00:00 → 23:59:59),输出为"pm"。 am
A 同上,但为大写。 AM
g 显示12小时制的时间,不自动补0。 9
h 显示12小时制的时间,自动补0。 09
G 显示24小时制的时间,不自动补0。 9
H 显示24小时制的时间,自动补0。 09
分与秒
i 显示当前为几分,自动补0。 23
s 显示当前为几秒,自动补0。 53
U 显示自1970年1月1日 00:00:00 GMT 以后为第几秒。 1731230633
时区(1.22wmf2
e 时区标识符。 UTC
I 当前日期是否在夏令时(若是则显示1,不是则显示0)。 0
O 格林威治标准时间(GMT)的差距 +0000
P 格林威治标准时间的差距(带冒号) +00:00
T 时区缩写。 UTC
Z 以秒为单位的时区偏移量。 0
杂项
t 当前月份的天数。 30
c ISO 8601格式化日期,等价于Y-m-d"T"H:i:s+00:00 2024-11-10T09:23:53+00:00
r RFC 5322格式化日期,等价于D, j M Y H:i:s +0000,但星期几名称和月份名称未国际化。 Sun, 10 Nov 2024 09:23:53 +0000
非公历历法
伊斯兰历
xmj 该月中的第几天。 8
xmF 完整月份名称。 主马达·敖外鲁月
xmn 该年中的第几个月。 5
xmY 完整年份。 1446
伊朗历
xij 该月中的第几天。 20
xiF 完整月份名称。 Aban
xin 该年中的第几个月。 8
xiY 完整年份。 1403
xiy 2位数的年份 03
Hebrew
xjj 该月中的第几天。 9
xjF 完整的月份名称 玛西班月
xjt 该月份中的天数。 30
xjx 该月名称的属格。 Cheshvan
xjn 第几月。 2
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}} → ב'כ"ד

参见