模板:Date table sorting/doc

DTS代表Date Table Sorting(以日期排序),用于在能排序表格里整理和显示日期(帮助:排序(英文))。

它解决的问题

通常如果要排序的话,日期必须要使用YYYY-MM-DD的格式输入。但是,这格式与格式手册中指定的格式不同。这模板会自动制作用作排序的排序键,但会以另外的形式显示输出(例如年-月-日)。

参数

日期

年月日不一定要分开输入。
{{dts||||时代}} {{dts|日期}}
  • 第一个参数 – 年份(如月份不空缺就非必要)
    • 正数(1 到 9999)代表公元前或公元后年份(视乎第四个参数),第四个参数空缺的话,默认代表公元后年份。
    • 负数(−1 到 −9999)代表公元前年份(第四个参数必须空缺)。
  • 第二个参数 – 月份(如日子空缺就非必要)
    • 月份的全称 – February 或 february
    • 月份的缩写– Feb 或 feb
    • 月份的数字 – 2 或者 02
  • 第三个参数 – 日子(非必要)
    • 日期数字 – 7 或 07
  • 第四个参数 – (非必要)
    • 可以是 BC、AD、BCE 或 CE
    • 当年份值为正时使用
  • 第一个参数 – 完整日期。国际格式、美国格式[需要解释]或 YYYY-MM-DD 格式
    • 国际格式的日期不会被改变。YYYY-MM-DD 式日期默认会转换到US格式。
    • 可以接受月份缩写
    • 大小写和逗号错误将被改正
    • 模板使用{{#time:}},所以它也受解析器函数的限制(例如不支持公元100年以下)
例子
输入风格 输入码 隐藏排序键 显示的输出
{{Date_table_sorting|}} {{Date_table_sorting|1893}} 000000001893-01-01-0000 1893年
{{Date_table_sorting|-89}} -999999999911-01-01-0000 公元前89年
{{Date_table_sorting|}} {{Date_table_sorting|Oct}} 000000002024-10-01-0000 10月
{{Date_table_sorting|月 年}} {{Date_table_sorting|February 1767}} 000000001767-02-01-0000 1767年2月
{{Date_table_sorting|日 月 年}} {{Date_table_sorting|12 Aug 1987}} 000000001987-08-12-0000 1987年8月12日
{{Date_table_sorting|月 日, 年}} {{Date_table_sorting|July 1, 1867}} 000000001867-07-01-0000 1867年7月1日
{{Date_table_sorting|日 月}} {{Date_table_sorting|25 October}} 000000002024-10-25-0000 2024年10月25日
{{Date_table_sorting|月 日}} {{Date_table_sorting|Jan 1}} 000000002024-01-01-0000 2024年1月1日
{{Date_table_sorting|YYYY-MM-DD}} {{Date_table_sorting|2014-12-09}} 000000002014-12-09-0000 2014年12月9日
{{Date_table_sorting||}} {{Date_table_sorting|1990|10}} 000000001990-10-01-0000 1990年10月
{{Date_table_sorting|1980|Dec}} 000000001980-12-01-0000 1980年12月
{{Date_table_sorting|1970|August}} 000000001970-08-01-0000 1970年8月
{{Date_table_sorting|||}} {{Date_table_sorting|2024|Jun|12}} 000000002024-06-12-0000 2024年6月12日
{{Date_table_sorting|-204|11|22}} -999999999796-11-22-0000 公元前204年11月22日
{{Date_table_sorting||||時代}} {{Date_table_sorting|44|3|15|BC}} -999999999956-03-15-0000 公元前44年3月15日
{{Date_table_sorting|94|Oct|17|AD}} 000000000094-10-17-0000 94年10月17日
{{Date_table_sorting||}} {{Date_table_sorting||May}} 000000002024-05-01-0000 5月
{{Date_table_sorting|||}} {{Date_table_sorting||Sep|12}} 000000002024-09-12-0000 9月12日

格式化

使用format可以做出一个依赖但不需要相同于提供日期的格式。这需要多次调用函数 {{#time:}},减少一个页面中使用本模板的最多召唤次数到最差88次,参见下方。format 参数可以用九个数值。

例子
输出格式 输入码 隐藏排序键 显示的输出
年-月-日 {{Date_table_sorting|26 Jan 1788}} 000000001788-01-26-0000 1788年1月26日
{{Date_table_sorting|March 12, 1557}} 000000001557-03-12-0000 1557年3月12日
{{Date_table_sorting|1975-02-13}} 000000001975-02-13-0000 1975年2月13日


ymd 年-月-日(默认) {{Date_table_sorting|August 31, 1901|format=ymd}} 000000001901-08-31-0000 1901年8月31日
{{Date_table_sorting|2006-11-08|format=ymd}} 000000002006-11-08-0000 2006年11月8日
{{Date_table_sorting|1888|5|8|format=ymd}} 000000001888-05-08-0000 1888年5月8日
{{Date_table_sorting|-56|08|09|format=ymd}} -999999999944-08-09-0000 公元前56年8月9日


md 月-日 {{Date_table_sorting|26 Jun 1988|format=md}} 000000001988-06-26-0000 6月26日
{{Date_table_sorting|2002-05-27|format=md}} 000000002002-05-27-0000 5月27日
dm 月-日 {{Date_table_sorting|Feb 26, 1788|format=dm}} 000000001788-02-26-0000 2月26日
{{Date_table_sorting|2020-10-15|format=dm}} 000000002020-10-15-0000 10月15日


my 年-月 {{Date_table_sorting|16 November 1488|format=my}} 000000001488-11-16-0000 1488年11月


d {{Date_table_sorting|6 July 1666|format=d}} 000000001666-07-06-0000 6日


m 月份 {{Date_table_sorting|1980-02-12|format=m}} 000000001980-02-12-0000 2月


y 年份 {{Date_table_sorting|-26|Jan|18|format=y}} -999999999974-01-18-0000 公元前26年


hide 隐藏日期 {{Date_table_sorting|15 October 1800|format=hide}} 000000001800-10-15-0000
注意:以下格式的值皆视为无效
dmy 中文版视为无效 {{Date_table_sorting|Sep 13, 1888|format=dmy}} 000000001888-09-13-0000 1888年9月13日
{{Date_table_sorting|1983-01-03|format=dmy}} 000000001983-01-03-0000 1983年1月3日


mdy 中文版视为无效 {{Date_table_sorting|August 31, 1901|format=mdy}} 000000001901-08-31-0000 1901年8月31日
{{Date_table_sorting|2006-11-08|format=mdy}} 000000002006-11-08-0000 2006年11月8日

当处理单一的日期参数时,除非只有一个数字(那么它将被解释为年份),模板将根据php date/time format来解释参数。但由于中文习惯的格式的影响,默认皆是使用年-月-日由于本模板调用函数{{#time:}},因此单一页面中最多仅能使用本模板1200次。[需要解释]

缩写

在中文版本,只有一个方法缩写日期:使用 abbr=on 参数。

例子
缩写方法 输入码 隐藏排序键 显示的输出
{{Date_table_sorting|2000-01-01}} 000000002000-01-01-0000 2000年1月1日
{{Date_table_sorting|2000|1|1}} 000000002000-01-01-0000 2000年1月1日
{{Date_table_sorting|1 January 2000}} 000000002000-01-01-0000 2000年1月1日
{{Date_table_sorting|2000|January|1}} 000000002000-01-01-0000 2000年1月1日
输入月份缩写 {{Date_table_sorting|1 Jan 2000}} 000000002000-01-01-0000 2000年1月1日
{{Date_table_sorting|2000|Jan|1}} 000000002000-01-01-0000 2000年1月1日
abbr=on {{Date_table_sorting|1 January 2000|abbr=on}} 000000002000-01-01-0000 2000/1/1
{{Date_table_sorting|2000|January|1|abbr=on}} 000000002000-01-01-0000 2000/1/1
{{Date_table_sorting|2000-01-01|abbr=on}} 000000002000-01-01-0000 2000/1/1
{{Date_table_sorting|2000|1|1|abbr=on}} 000000002000-01-01-0000 2000/1/1

额外排序键

如果表格内的两个日期一样,它们可以利用参数 addkey 排序。

例子
输入码 隐藏排序键 显示的输出
{{Date_table_sorting|2010-10-10|addkey=3}} 000000002010-10-10-0003 2010年10月10日
{{Date_table_sorting|2010-10-09}} 000000002010-10-09-0000 2010年10月9日
{{Date_table_sorting|2010-10-10|addkey=1}} 000000002010-10-10-0001 2010年10月10日
{{Date_table_sorting|2010-10-10}} 000000002010-10-10-0000 2010年10月10日
{{Date_table_sorting|2010-10-10|addkey=4}} 000000002010-10-10-0004 2010年10月10日
{{Date_table_sorting|2010-10-11}} 000000002010-10-11-0000 2010年10月11日
{{Date_table_sorting|2010-10-10|addkey=2}} 000000002010-10-10-0002 2010年10月10日

文字换行

要关闭自动换行的话,请使用nowrap=off参数。

注解

排序非完整日期

完整年份或月份

完整年份或月份(或完整年月),例如{{dts|2020}}{{dts|Jan}}{{dts|2020|1}},系统会按其第一个日子排序。

没有年份

如果未指定年份,系统将会视年份为现时年份来进行排序。

处理错误

输入无效的日期格式(通常)会产生一条错误消息,例如{{dts||維基百科}}会产生以下内容:

Module:Date table sorting错误:给出的月份“维基百科”月不合理。

历法选择

本模板无法区分儒略历和公历日期。另外,它不能从一个历法输入日期并按另一历法输出日期。所以,要确保排序良好,用户必须把日期统一于一个历法,或者确定一个转折日(例如,确定1582年10月4日为儒略历,以后的所有日期为公历),这可以用一条条的方法实现。如果可能造成混淆,用家有责任解释给读者究竟显示的日期是儒略历还是公历。

链接

本模板默认自动链接到日期。若要关闭链接,则可使用参数link=off。根据目前的指引,此模板不再支持日期的内部链接。请不要使用此参数,并请将此参数从目前的模板调用中移除。

参见

  • {{sort}},以一个特定的钥匙排序
  • {{sortname}},排序人名(用姓氏和名称作为默认排序钥匙)。
  • {{tts}},用于在体育赛事结果表中排序时间(只需要用于一定情况——参见该模板的文档页面)
  • {{number table sorting}},为数字而设