說明:時間函數

時間函數,或#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:01:19,現在時間
  • {{#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:I:XIX。請參閱下方的示例:

一般功能

編輯
  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:01:19 +0000)
{{#time: [[Y "(year)"]] }}2024 (year)
{{#time: i's" }}01'19"

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:01:19 +0000
{{#time: r|+2 hours}}Wed, 17 Jul 2024 01:01:19 +0000
{{#time: r|now + 2 hours}}Wed, 17 Jul 2024 01:01:19 +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 }}1721170879
{{#time: r|@1721170879}}Tue, 16 Jul 2024 23:01:19 +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。 01
s 顯示當前為幾秒,自動補0。 19
U 顯示自1970年1月1日 00:00:00 GMT 以後為第幾秒。 1721170879
時區(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:01:19+00:00
r RFC 5322格式化日期,等價於D, j M Y H:i:s +0000,但星期幾名稱和月份名稱未國際化。 Tue, 16 Jul 2024 23:01:19 +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}} → ב'כ"ד

參見

編輯