Help:時間函數

時間函數,或#time,是MediaWiki提供的解析器函式,可用來顯示各式各樣的時間格是。例如:

  • {{#time:j F Y}}                顯示: 5 11月 2024,當前的UTC日期
  • {{#time:F j, Y}}               顯示: 11月 5, 2024,當前的日期(月/日/年格式)
  • {{#time:Y-m-d}}                顯示: 2024-11-05,當前的ISO 8601日期
  • {{#time:H:i:s}}                顯示: 14:38:58,現在時間
  • {{#time:l}}                    顯示:  "星期二",今日為星期幾
  • {{#time:\d\a\y D}}             顯示  "day 二" 顯示星期的數字
  • {{#time:F j. Y|7 May 2013|de}}            顯示  "Mai 7. 2013",德文的月份與日期
  • {{#time:xij xiF xiY}}          顯示  "15 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}} → XIV:XXXVIII:LVIII。請參閱下方的示例:

一般功能

  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-05
{{#time: [[Y]] m d }}2024 11 05
{{#time: [[Y (year)]] }}2024 (24UTCpmTue, 05 Nov 2024 14:38:58 +0000)
{{#time: [[Y "(year)"]] }}2024 (year)
{{#time: i's" }}38'58"

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, 05 Nov 2024 14:38:58 +0000
{{#time: r|+2 hours}}Tue, 05 Nov 2024 16:38:58 +0000
{{#time: r|now + 2 hours}}Tue, 05 Nov 2024 16:38:58 +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 }}1730817538
{{#time: r|@1730817538}}Tue, 05 Nov 2024 14:38:58 +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。 5
d 日期(該月中的第幾天),自動補0。 05
z 日期(該年中的第n-1天,如1月1日 = 0
[[#ref_{{{1}}}|^]] 若要求ISO的日期碼,請將這個數字加1。
309
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。 2
h 顯示12小時制的時間,自動補0。 02
G 顯示24小時制的時間,不自動補0。 14
H 顯示24小時制的時間,自動補0。 14
分與秒
i 顯示當前為幾分,自動補0。 38
s 顯示當前為幾秒,自動補0。 58
U 顯示自1970年1月1日 00:00:00 GMT 以後為第幾秒。 1730817538
時區(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-05T14:38:58+00:00
r RFC 5322格式化日期,等價於D, j M Y H:i:s +0000,但星期幾名稱和月份名稱未國際化。 Tue, 05 Nov 2024 14:38:58 +0000
非公曆曆法
伊斯蘭曆
xmj 該月中的第幾天。 3
xmF 完整月份名稱。 主马达·敖外鲁月
xmn 該年中的第幾個月。 5
xmY 完整年份。 1446
伊朗曆
xij 該月中的第幾天。 15
xiF 完整月份名稱。 Aban
xin 該年中的第幾個月。 8
xiY 完整年份。 1403
xiy 2位數的年份 03
Hebrew
xjj 該月中的第幾天。 4
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}} → ב'כ"ד

參見