模板:Date
外观
25 October 2024
用途
本模板不能将日期显示为中文格式。如需实现,请改用{{Chinese date}}模板。
本模版用来统一维基百科内日期格式排版,本模版最好被用在其他模版中。 如果你想对日期整理成一个表格,可使用{{Dts}} 代替。
用法
本模版使用两个参数,两者都是可选的:
{{date|
<要格式化的日期>|<日期格式化的方式>}}
- <要格式化的日期> :本参数为可选的
- 如果没填入具体日期,则本模版自动填上现在时间
例如,{{date}} produces 25 October 2024。 - 如果填入了具体日期,但其格式不能被本模版识别出的话,本模版会显示as is。大多数日期格式都能被识别出,包括所有在维基百科通常使用的格式。其他日期数字的变体也被识别,包括缩写或小写的月份名称,'st'、'nd'、'rd'、'th'缩写,忽略空格,缺逗号,等。
- 注意:
- 一些数据不是真正的日期数据,但使用该模版也会被识别为日期数据。请看注意事项
- 只支持1 January 1000到31 December 9999的时间段。两位数的日期会产生意想不到的结果。在1000~9999范围的的数据将被视为第二参数为"none"。
- 如果没填入具体日期,则本模版自动填上现在时间
- <日期格式化的方式>: 本参数用于控制日期的输出格式。
- 如无指明本参数,本模版默认格式为'd month yyyy'
- 能被第二参数识别的属性值如下:
- none 没适用的格式化
- dmy 输出格式为 d mmmm yyyy (例如:25 October),这是默认格式。
- mdy 输出格式为 mmmm d, yyyy (例如:October 25)
- ymd 输出格式为 yyyy mmmm dd (例如:October 25)
- iso 输出符合 ISO 8601 的格式 yyyy-mm-dd (例如:October 25)
例子
合理输入
输入 | 输出 |
---|---|
无明确格式 | |
{{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}}。