模板:Date
外觀
1 November 2024
用途
本模板不能將日期顯示為中文格式。如需實現,請改用{{Chinese date}}模板。
本模版用來統一維基百科內日期格式排版,本模版最好被用在其他模版中。 如果你想對日期整理成一個表格,可使用{{Dts}} 代替。
用法
本模版使用兩個參數,兩者都是可選的:
{{date|
<要格式化的日期>|<日期格式化的方式>}}
- <要格式化的日期> :本參數為可選的
- 如果沒填入具體日期,則本模版自動填上現在時間
例如,{{date}} produces 1 November 2024。 - 如果填入了具體日期,但其格式不能被本模版識別出的話,本模版會顯示as is。大多數日期格式都能被識別出,包括所有在維基百科通常使用的格式。其他日期數字的變體也被識別,包括縮寫或小寫的月份名稱,'st'、'nd'、'rd'、'th'縮寫,忽略空格,缺逗號,等。
- 注意:
- 一些數據不是真正的日期數據,但使用該模版也會被識別為日期數據。請看注意事項
- 只支持1 January 1000到31 December 9999的時間段。兩位數的日期會產生意想不到的結果。在1000~9999範圍的的數據將被視為第二參數為"none"。
- 如果沒填入具體日期,則本模版自動填上現在時間
- <日期格式化的方式>: 本參數用於控制日期的輸出格式。
- 如無指明本參數,本模版默認格式為'd month yyyy'
- 能被第二參數識別的屬性值如下:
- none 沒適用的格式化
- dmy 輸出格式為 d mmmm yyyy (例如:1 November),這是默認格式。
- mdy 輸出格式為 mmmm d, yyyy (例如:November 1)
- ymd 輸出格式為 yyyy mmmm dd (例如:November 1)
- iso 輸出符合 ISO 8601 的格式 yyyy-mm-dd (例如:November 1)
例子
合理輸入
輸入 | 輸出 |
---|---|
無明確格式 | |
{{date|2006-05-04}} | 4 May 2006 |
{{date|May 4, 2006}} | 4 May 2006 |
{{date|4 May 2006}} | 4 May 2006 |
{{date|4 May}} | 4 May |
{{date|May 4}} | 4 May |
使用dmy 格式 | |
{{date|2006-05-04|dmy}} | 4 May 2006 |
{{date|May 4, 2006|dmy}} | 4 May 2006 |
{{date|4 May 2006|dmy}} | 4 May 2006 |
{{date|4 May|dmy}} | 4 May |
{{date|May 4|dmy}} | 4 May |
使用mdy 格式 | |
{{date|2006-05-04|mdy}} | May 4, 2006 |
{{date|May 4, 2006|mdy}} | May 4, 2006 |
{{date|4 May 2006|mdy}} | May 4, 2006 |
{{date|4 May|mdy}} | May 4 |
{{date|May 4|mdy}} | May 4 |
使用ymd 格式 | |
{{date|2006-05-04|ymd}} | 2006 May 4 |
{{date|May 4, 2006|ymd}} | 2006 May 4 |
{{date|4 May 2006|ymd}} | 2006 May 4 |
{{date|4 May|ymd}} | May 4 |
{{date|May 4|ymd}} | May 4 |
使用iso 格式 | |
{{date|2006-05-04|iso}} | 2006-05-04 |
{{date|May 4, 2006|iso}} | 2006-05-04 |
{{date|4 May 2006|iso}} | 2006-05-04 |
{{date|4 May|iso}} | May 4 |
{{date|May 4|iso}} | May 4 |
使用none 格式 | |
{{date|2006-05-04|none}} | 2006-05-04 |
{{date|May 4, 2006|none}} | May 4, 2006 |
{{date|4 May 2006|none}} | 4 May 2006 |
{{date|4 May|none}} | 4 May |
{{date|May 4|none}} | May 4 |
其他有效輸入
其他各種各樣的輸入格式也能被本模版正確識別輸出:
輸入 | 輸出 |
---|---|
{{date|1st December 2008}} ('st'日縮寫 ) | 1 December 2008 |
{{date|June 24 2006}} (缺逗號) | 24 June 2006 |
{{date|24 june 2006}} (小寫的英文月名) | 24 June 2006 |
{{date|24 jun}} (縮寫英文月名) | 24 June |
{{date|June 2006}} | June 2006 |
不合理的輸入
輸入不能被本模版接受的字符串將不會被警告,這其中包括含有字符的字符串,所以任何連結將導致未格式化的輸出。
輸入 | 輸出 |
---|---|
{{date|23007-031-24}} | 23007-031-24 |
{{date|[[1 December]] [[2008]]|ymd}} | 1 December 2008 |
{{date|1 December [[2008 in film|2008]]|mdy}} | 1 December 2008 |
注意事項
- 超出範圍值會被「修正」
- 本模版所基於的PHP庫會把超出範圍值轉換為最接近範圍的值。所以,一些好像日期但實質不是日期的值也會被過度轉換。這包括:
- 所有為0日的月份的日期。當寫成「X月0日」之類的數據會被轉化為上月的最後一天。例如,
{{date|June 0, 2006}}
的結果為31 May 2006
。相似的,{{date|0 January 2006}}
變成31 December 2005
. - 所有天數超過當月天數的,將多出的天數往以後月份累加。例如,
{{date|31 November 2008}}
的結果為1 December 2008
, 因為11月只有30天。相似的,{{date|February 29, 2007}}
的結果為1 March 2007
, 因為2007不是閏年。注意: 由於PHP庫解釋器的特性, 'December 32' 和 '32 December' 是不同的, 和後一個是錯誤的 (這會令模板原樣輸出的), 只有前一個有效,並「正確累加」到下個月。
- 所有為0日的月份的日期。當寫成「X月0日」之類的數據會被轉化為上月的最後一天。
- 非公曆日期也會被視為公曆日期
- 本模版所基於的PHP庫會假定所有日期為公曆日期,不理會上下說明,所以:
- 所有非公曆日期會按上面的規則被變換,例如:
{{date|30 February 1712}}
的結果為1 March 1712
因為雖然對於瑞典歷來說1712年2月30日是合理的,但對於公曆來說,2月最多只有29日的。 - 10的倍數年的日期,如1000, 1100, 1300, 1400, 1500的2月29日和3月1日,也不能使用。原因同上。
- 部分不符合某些地區曆法的日期也會被正確處理為公曆日期,例如,對於俄歷來說,1912年2月29日或1918年2月1日是不存在的,但對公曆來說是存在的。
- 所有非公曆日期會按上面的規則被變換,例如:
- ISO 8601 格式標準不適用於1583年之前的年份
ISO 8601標準只規定1583年之後的日期標準,由於沒有標準規定1583年之前的日期標準,不要在本模版使用該年份段的日期和任何不屬於公曆的日期。
- 不提供為微格式
- hCalendar 和 hCard 兩種微格式有各種各樣本模版不能輸出的功能。如果,想在infoboxes模板內使用微格式日期模板的話,請使用{{Start date}}、{{End date}}或{{Birth date}}。