模板:Date

被永久保护的模板
维基百科,自由的百科全书

27 March 2024

文档图示 模板文档[查看] [编辑] [历史] [清除缓存]

用途

本模板不能将日期显示为中文格式。如需实现,请改用{{Chinese date}}模板。

本模版用来统一维基百科内日期格式排版,本模版最好被用在其他模版中。 如果你想对日期整理成一个表格,可使用{{Dts}} 代替。

用法

本模版使用两个参数,两者都是可选的:

{{date|<要格式化的日期>|<日期格式化的方式>}}

  • <要格式化的日期> :本参数为可选的
    如果没填入具体日期,则本模版自动填上现在时间
    例如,{{date}} produces 27 March 2024。
    如果填入了具体日期,但其格式不能被本模版识别出的话,本模版会显示as is。大多数日期格式都能被识别出,包括所有在维基百科通常使用的格式。其他日期数字的变体也被识别,包括缩写或小写的月份名称,'st'、'nd'、'rd'、'th'缩写,忽略空格,缺逗号,等。
    注意:
    • 一些数据不是真正的日期数据,但使用该模版也会被识别为日期数据。请看注意事项
    • 只支持1 January 1000到31 December 9999的时间段。两位数的日期会产生意想不到的结果。在1000~9999范围的的数据将被视为第二参数为"none"。
  • <日期格式化的方式>: 本参数用于控制日期的输出格式。
    如无指明本参数,本模版默认格式为'd month yyyy'
    能被第二参数识别的属性值如下:
    • none 没适用的格式化
    • dmy 输出格式为 d mmmm yyyy (例如:27 March),这是默认格式。
    • mdy 输出格式为 mmmm d, yyyy (例如:March 27)
    • ymd 输出格式为 yyyy mmmm dd (例如:March 27)
    • iso 输出符合 ISO 8601 的格式 yyyy-mm-dd (例如:March 27)
  • 注意:
    • 虽然这是能被MediaWiki的日期自动格式化系统所支持的四种格式,但只有dmy/ldmymdy/lmdy与英文维基格式手册。使用iso/liso这种ISO 8601标准格式在within article prose在格式书册中是被不允许的,这种格式应该只在表格中使用。
    • 在每一种情况下,MediaWiki的自动日期格式化系统都能输出准确的时间格式,
      但是,即使日期为链接,也不会被MediaWiki自动日期格式化系统修改的,这意味着允许日期能有一致的输出格式,不管其是否被链接。

例子

合理输入

输入 输出
无明确格式
{{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' 是不同的, 和后一个是错误的 (这会令模板原样输出的), 只有前一个有效,并“正确累加”到下个月。
非公历日期也会被视为公历日期
  • 本模版所基于的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年之前的日期标准,不要在本模版使用该年份段的日期和任何不属于公历的日期。

不提供为微格式
  • hCalendarhCard 两种微格式有各种各样本模版不能输出的功能。如果,想在infoboxes模板内使用微格式日期模板的话,请使用{{Start date}}、{{End date}}或{{Birth date}}。