帮助:时间函数

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

  • {{#time:j F Y}}                显示: 16 7月 2024,当前的UTC日期
  • {{#time:F j, Y}}               显示: 7月 16, 2024,当前的日期(月/日/年格式)
  • {{#time:Y-m-d}}                显示: 2024-07-16,当前的ISO 8601日期
  • {{#time:H:i:s}}                显示: 23:12:59,现在时间
  • {{#time:l}}                    显示:  "星期二",今日为星期几
  • {{#time:\d\a\y D}}             显示  "day 二" 显示星期的数字
  • {{#time:F j. Y|7 May 2013|de}}            显示  "Mai 7. 2013",德文的月份与日期
  • {{#time:xij xiF xiY}}          显示  "26 Tir 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}} → XXIII:XII:LIX。请参阅下方的示例:

一般功能

编辑
  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-07-16
{{#time: [[Y]] m d }}2024 07 16
{{#time: [[Y (year)]] }}2024 (24UTCpmTue, 16 Jul 2024 23:12:59 +0000)
{{#time: [[Y "(year)"]] }}2024 (year)
{{#time: i's" }}12'59"

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}}Tue, 16 Jul 2024 23:12:59 +0000
{{#time: r|+2 hours}}Wed, 17 Jul 2024 01:12:59 +0000
{{#time: r|now + 2 hours}}Wed, 17 Jul 2024 01:12:59 +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 }}1721171579
{{#time: r|@1721171579}}Tue, 16 Jul 2024 23:12:59 +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。 7
m 月份,自动补0。 07
M 该网站所用的语言中,月份名称的缩写。 7月
F 该网站所用的语言中,月份名称的全称。 7月
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。 29
j 日期(该月中的第几天),不自动补0。 16
d 日期(该月中的第几天),自动补0。 16
z 日期(该年中的第n-1天,如1月1日 = 0
[[#ref_{{{1}}}|^]] 若要求ISO的日期码,请将这个数字加1。
197
D 星期几的缩写。此用途很少国际化。
l 星期几的完整名称。 很少国际化。 星期二
N ISO 8601 中的星期几(星期一 = 1,星期天 = 7)。 2
w 星期几的代码(中文不变,英文星期日 = 0,星期六 = 6)。 2
a 中午12点以前(00:00:00 → 11:59:59),输出为"am";中午12点及以后(12:00:00 → 23:59:59),输出为"pm"。 pm
A 同上,但为大写。 PM
g 显示12小时制的时间,不自动补0。 11
h 显示12小时制的时间,自动补0。 11
G 显示24小时制的时间,不自动补0。 23
H 显示24小时制的时间,自动补0。 23
分与秒
i 显示当前为几分,自动补0。 12
s 显示当前为几秒,自动补0。 59
U 显示自1970年1月1日 00:00:00 GMT 以后为第几秒。 1721171579
时区(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-07-16T23:12:59+00:00
r RFC 5322格式化日期,等价于D, j M Y H:i:s +0000,但星期几名称和月份名称未国际化。 Tue, 16 Jul 2024 23:12:59 +0000
非公历历法
伊斯兰历
xmj 该月中的第几天。 9
xmF 完整月份名称。 穆哈兰姆月
xmn 该年中的第几个月。 1
xmY 完整年份。 1446
伊朗历
xij 该月中的第几天。 26
xiF 完整月份名称。 Tir
xin 该年中的第几个月。 4
xiY 完整年份。 1403
xiy 2位数的年份 03
Hebrew
xjj 该月中的第几天。 10
xjF 完整的月份名称 搭模斯月
xjt 该月份中的天数。 29
xjx 该月名称的属格。 Tamuz
xjn 第几月。 10
xjY 完整年份。 5784
泰国阳历
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}} → ב'כ"ד

参见

编辑