說明:時間函數
本頁為操作指南,用於介紹中文維基百科社群的一些實作和操作方式。 本文只是論述,不屬於方針或指引。如果本指南與方針或指引起衝突或不一致,請以方針或指引的條文為準。 |
時間函數,或#time,是MediaWiki提供的解析器函式,可用來顯示各式各樣的時間格是。例如:
- {{#time:j F Y}} 顯示: 26 10月 2024,當前的UTC日期
- {{#time:F j, Y}} 顯示: 10月 26, 2024,當前的日期(月/日/年格式)
- {{#time:Y-m-d}} 顯示: 2024-10-26,當前的ISO 8601日期
- {{#time:H:i:s}} 顯示: 11:11:54,現在時間
- {{#time:l}} 顯示: "星期六",今日為星期幾
- {{#time:\d\a\y D}} 顯示 "day 六" 顯示星期的數字
- {{#time:F j. Y|7 May 2013|de}} 顯示 "Mai 7. 2013",德文的月份與日期
- {{#time:xij xiF xiY}} 顯示 "5 Aban 1403"顯示現在於伊朗曆的日期
共有超過35個日期格式代碼(見下文:時間格式代碼)用來排序年、月、日、時、分與秒等(如 'j' 指日期、 'H' 指小時、'l' 指星期幾)。其他字母會被視為普通文字,若遇到字母已被代碼使用的情形可使用反斜線(如'\d'
顯示 'd')。參數2可指定其他日期/時間(以幾種典型格式中的任何一種),參數3可以使用兩位字母語言代碼將月份名稱翻譯為另一種語言。
除了格里曆,#time函數還可以使用x代碼(x_)將日期轉換為其他曆法:伊斯蘭曆(xm)、伊朗曆(xi)、希伯來曆(xj)、泰國曆(xk)、民國紀年(xo)或日本曆(xt)。例如,若欲顯示現在於伊斯蘭曆的月份與年份,可輸入:{{#time:xmF xmY}} → 賴比爾·阿色尼月 1446.
一般功能
- time解析器函數需要一個公曆的日期和/或時間,並根據給定的語法對其進行格式化。可以指定日期/時間對象;默認值是魔術字{{CURRENTTIMESTAMP}}–的值—也就是頁面最後呈現為HTML的時間。
- {{#time: format string }}
- {{#time: format string | date/time object }}
- {{#time: format string | date/time object | language code }}
下表列出了可接受的格式代碼列表。格式化字符串中任何未能識別的字符將維持不變(包括空格)。在格式化字符串中還有兩種轉義字符的方法:
- 反斜線與一個緊隨在後的字母 → 單個文字字符
- 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-10-26
- {{#time: [[Y]] m d }} → 2024 10 26
- {{#time: [[Y (year)]] }} → 2024 (24UTCamSat, 26 Oct 2024 11:11:54 +0000)
- {{#time: [[Y "(year)"]] }} → 2024 (year)
- {{#time: i's" }} → 11'54"
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}} → Sat, 26 Oct 2024 11:11:54 +0000
- {{#time: r|+2 hours}} → Sat, 26 Oct 2024 13:11:54 +0000
- {{#time: r|now + 2 hours}} → Sat, 26 Oct 2024 13:11:54 +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 }} → 1729941114
- {{#time: r|@1729941114}} → Sat, 26 Oct 2024 11:11:54 +0000
可接受的輸入範圍是0111年1月1日~9999年12月31日。For the years 100 through 110 the output is inconsistent, Y and leap years are like the years 100-110, r, D, l and U are like interpreting these years as 2000-2010. {{#time: d F Y | 29 Feb 0100 }} → 01 3月 0100 (correct, no leap year), but Year numbers 0-99 are interpreted as 2000-2069 and 1970-1999, even when written with leading zeros:
|
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。 | ||
月 | ||
n | 月份,不自動補0。 | 10 |
m | 月份,自動補0。 | 10 |
M | 該網站所用的語言中,月份名稱的縮寫。 | 10月 |
F | 該網站所用的語言中,月份名稱的全稱。 | 10月 |
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。 | 43 |
日 | ||
j | 日期(該月中的第幾天),不自動補0。 | 26 |
d | 日期(該月中的第幾天),自動補0。 | 26 |
z | 日期(該年中的第n-1天,如1月1日 = 0) [[#ref_{{{1}}}|^]] 若要求ISO的日期碼,請將這個數字加1。 |
299 |
D | 星期幾的縮寫。此用途很少國際化。 | 六 |
l | 星期幾的完整名稱。 很少國際化。 | 星期六 |
N | ISO 8601 中的星期幾(星期一 = 1,星期天 = 7)。 | 6 |
w | 星期幾的代碼(中文不變,英文星期日 = 0,星期六 = 6)。 | 6 |
時 | ||
a | 中午12點以前(00:00:00 → 11:59:59),輸出為"am";中午12點及以後(12:00:00 → 23:59:59),輸出為"pm"。 | am |
A | 同上,但為大寫。 | AM |
g | 顯示12小時制的時間,不自動補0。 | 11 |
h | 顯示12小時制的時間,自動補0。 | 11 |
G | 顯示24小時制的時間,不自動補0。 | 11 |
H | 顯示24小時制的時間,自動補0。 | 11 |
分與秒 | ||
i | 顯示當前為幾分,自動補0。 | 11 |
s | 顯示當前為幾秒,自動補0。 | 54 |
U | 顯示自1970年1月1日 00:00:00 GMT 以後為第幾秒。 | 1729941114 |
時區(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-10-26T11:11:54+00:00 |
r | RFC 5322格式化日期,等價於D, j M Y H:i:s +0000,但星期幾名稱和月份名稱未國際化。 | Sat, 26 Oct 2024 11:11:54 +0000 |
非公曆曆法 | ||
伊斯蘭曆 | ||
xmj | 該月中的第幾天。 | 22 |
xmF | 完整月份名稱。 | 賴比爾·阿色尼月 |
xmn | 該年中的第幾個月。 | 4 |
xmY | 完整年份。 | 1446 |
伊朗曆 | ||
xij | 該月中的第幾天。 | 5 |
xiF | 完整月份名稱。 | Aban |
xin | 該年中的第幾個月。 | 8 |
xiY | 完整年份。 | 1403 |
xiy | 2位數的年份 | 03 |
Hebrew | ||
xjj | 該月中的第幾天。 | 24 |
xjF | 完整的月份名稱 | 提斯利月 |
xjt | 該月份中的天數。 | 30 |
xjx | 該月名稱的屬格。 | Tishrei |
xjn | 第幾月。 | 1 |
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}} → ב'כ"ד |
參見
- Template:Time,可顯示現在的日期/時間
- Template:Now,可顯示當前日期/時間的句子
- Template:TODAY,僅顯示現在日期(日/月/年)
- mw:Help:Extension:ParserFunctions # #time, developer's documentation page