Jump to content

Help:Date formatting and linking

From Meta, a Wikimedia project coordination wiki

The date formatting feature (autoformatting of dates), enabled by setting $wgUseDynamicDates to true, applies to linked dates in certain formats. It can cause link targets and/or the appearance to be different from what would follow from the general wikitext syntax. Also, the appearance depends on the preference setting for the date format. The latter also affects dates and times produced by the system in Recent Changes etc.

The feature has not been available since MediaWiki 1.21.

Wikitexts and user-dependent results

[edit]

The following is rendered depending on preferences (putting a comma and/or a space between the links, or starting month names with a capital gives the same result):

*month/day link target "{{CURRENTMONTHNAME}} {{CURRENTDAY}}":
**[[{{CURRENTYEAR}}-01-{{CURRENTDAY2}}]] or [[{{CURRENTYEAR}}]]-[[01-{{CURRENTDAY2}}]] (with leading zeros)
**[[{{CURRENTYEAR}}]][[{{CURRENTMONTHNAME}} {{CURRENTDAY}}]]
**[[{{CURRENTYEAR}}]][[{{CURRENTDAY}} {{CURRENTMONTHNAME}}]]
**[[{{CURRENTMONTHNAME}} {{CURRENTDAY}}]][[{{CURRENTYEAR}}]]
**[[{{CURRENTDAY}} {{CURRENTMONTHNAME}}]][[{{CURRENTYEAR}}]]
**[[{{CURRENTMONTHNAME}} {{CURRENTDAY}}]]
**[[{{CURRENTDAY}} {{CURRENTMONTHNAME}}]]
*month/day link target "{{CURRENTMONTHNAME}} {{CURRENTDAY2}}":
**[[{{CURRENTYEAR}}]][[{{CURRENTMONTHNAME}} {{CURRENTDAY2}}]]
**[[{{CURRENTYEAR}}]][[{{CURRENTDAY2}} {{CURRENTMONTHNAME}}]]
**[[{{CURRENTMONTHNAME}} {{CURRENTDAY2}}]][[{{CURRENTYEAR}}]]
**[[{{CURRENTDAY2}} {{CURRENTMONTHNAME}}]][[{{CURRENTYEAR}}]]
**[[{{CURRENTMONTHNAME}} {{CURRENTDAY2}}]]
**[[{{CURRENTDAY2}} {{CURRENTMONTHNAME}}]]
*month/day link target "Jan {{CURRENTDAY}}":
**[[{{CURRENTYEAR}}]][[jan {{CURRENTDAY}}]]
**[[{{CURRENTYEAR}}]][[{{CURRENTDAY}} jan]]
**[[jan {{CURRENTDAY}}]][[{{CURRENTYEAR}}]]
**[[{{CURRENTDAY}} jan]][[{{CURRENTYEAR}}]]
**[[jan {{CURRENTDAY}}]]
**[[{{CURRENTDAY}} jan]]
*month/day link target "Jan {{CURRENTDAY2}}":
**[[{{CURRENTYEAR}}]][[jan {{CURRENTDAY2}}]]
**[[{{CURRENTYEAR}}]][[{{CURRENTDAY2}} jan]]
**[[jan {{CURRENTDAY2}}]][[{{CURRENTYEAR}}]]
**[[{{CURRENTDAY2}} jan]][[{{CURRENTYEAR}}]]
**[[jan {{CURRENTDAY2}}]]
**[[{{CURRENTDAY2}} jan]]

With your current preference setting on this project this gives:

[edit]

The link targets are independent of the user-specified date format. The year has no leading zeros, e.g. "2007", "7", "7 BC". For the date 25 December 2024, apart from "2024", they are "December 25", "December 25", "Jan 25", or "Jan 25", depending on the wikitext. [[{{CURRENTYEAR}}]]-[[01-{{CURRENTDAY2}}]] produces links to "2024" and "December 25". Although [[{{CURRENTYEAR}}-01-{{CURRENTDAY2}}]] has the form of a single link, it produces the same two links.

Unlinked date

[edit]

If the date needs not be linked, and the links that have to be created for autoformatting are even undesirable (because they clutter the page, or invite to create unneeded pages) the date cannot be autoformatted. See also the extension mentioned below to allow autoformatting anyway.

[edit]

If the links that have to be created for autoformatting do not include those with the desired target(s), we can choose between:

  • using a fixed date format (so the user-preferences do not apply), and provide a link as desired
  • apply autoformatting, but add the desired link at the end

Whether to link to a year page, a month page, or a day page, depends on factors such as whether a year page would get too large to hold all content about the year; if so, both a link to a summary year page and a detailed month page could be useful. Either way, it would be useful to link to the section concerned.

From some sites other than Wikipedia, if we want to link to general content about a year, month or day, we may want to link to Wikipedia instead of to an internal page.

Linking a date to date content is not only useful for accessing that content, but also for the backlink: to find pages linking to a particular year, month or day. This gives us a list of events (and subjects related to events) that happened in (or are at least related to) that time period. This also allows easy checking of completeness and consistency of the source and target page.

Examples of links:

The day number in the anchor in w:Portal:Current events/DateHeader2, when below 10, has a leading zero. This avoids that asking for backlinks of 1 March also gives pages linking to 10 March etc.

In the case of linking to a separate page about a date this would require the leading zero in the page title, unless even in a link to such a page, we link to the anchor. For example, link 10 March 2007 [5] causes a false result when we ask for backlinks of 1 March: [6]. On the other hand, link 10 March 2007 [7] causes no false result when we ask for backlinks of 1 March: [8]

[edit]

If we do use the date formatting feature we get links to e.g. "2007", "7", "7 BC", so it is practical to use these pagenames, not e.g. "Year 2007", "0007", or "7 B.C.". If not we can create a redirect.

Also we get a link to "December 25", "December 25", "Jan 25", or "Jan 25", so if we want to create pages on days of the year it is practical to choose one of these four pagename formats, and not e.g. "25 December". Again, if such names are not desired we can use redirects. Also, if the content concerned is in a section of a page we can redirect to that section.

Anyway, links like simple:Special:Whatlinkshere/2007 and simple:Special:Whatlinkshere/December 25 can be used even if the link targets do not exist.

Appearances

[edit]

Option "default": the appearance is as without the date formatting feature, except:

  • the wikitext [[{{CURRENTYEAR}}-01-{{CURRENTDAY2}}]] gives the same appearance as [[{{CURRENTYEAR}}]]-[[01-{{CURRENTDAY2}}]]
  • if the day is in the center, a comma is put at the year side, if it is not there yet
  • if the day is not in the center, a possible comma is removed

Option "mdy": format [[m d]], [[y]] or [[m d]]

Option "dmy": format [[m d|d m]] [[y]] or [[m d|d m]]

Option "ymd": format [[y]] [[m d]] or [[m d]]

Option "yyyymmdd":

  • format [[y]]-[[m-d]] with numeric m, and m and d with leading zeros.
  • without year: appearance as without the date formatting feature

Years before 1000

[edit]

For years in the range 1-999, in the case of month numbers the year has to be padded with zeros; the link target for the year has to have leading zeros:

*month/day link target "{{CURRENTMONTHABBREV}}ari {{CURRENTDAY}}":
**[[0011-01-{{CURRENTDAY2}}]] or [[0011]]-[[01-{{CURRENTDAY2}}]]
**[[11]][[{{CURRENTMONTHNAME}} {{CURRENTDAY}}]]
**[[11]][[{{CURRENTDAY}} {{CURRENTMONTHNAME}}]]
**[[{{CURRENTMONTHNAME}} {{CURRENTDAY}}]][[11]]
**[[{{CURRENTDAY}} {{CURRENTMONTHNAME}}]][[11]]

*[[{{CURRENTMONTHNAME}} 99]]
*[[{{CURRENTMONTHNAME}} 100]]

With your current preference setting on this project this gives:

Thus a number below 100 is treated as a date of the month.

For years B.C. we get link targets of the form "12 BC":

*month/day link target "{{CURRENTMONTHABBREV}}ari {{CURRENTDAY}}":
**[[-0011-01-{{CURRENTDAY2}}]] or [[-0011]]-[[01-{{CURRENTDAY2}}]]
**[[12 BC]][[{{CURRENTMONTHNAME}} {{CURRENTDAY}}]]
**[[12 BC]][[{{CURRENTDAY}} {{CURRENTMONTHNAME}}]]
**[[{{CURRENTMONTHNAME}} {{CURRENTDAY}}]][[12 BC]]
**[[{{CURRENTDAY}} {{CURRENTMONTHNAME}}]][[12 BC]]

With your current preference setting on this project this gives:

User-dependent section title

[edit]

If a section title contains a link in a format such that the date formatting feature applies, the section title is user-dependent. However, for section linking this would require a link target that is correspondingly user-dependent, which does not seem possible with the current software without some special extension. Therefore it is better not to use a real section but a special-font header in user-dependent format with an explicitly defined anchor in a fixed date format, see w:Portal:Current events/DateHeader2 (talk). One can use e.g. Template:Datelink or the somewhat different w:Template:Datelink to link to it.

Sorting

[edit]

For chronological table sorting the format [[YYYY-MM-DD]] works directly; in other cases date sorting only works if a table has been specially adapted for that purpose. An additional effect of selecting this preference is that Recent Changes, User Contributions, etc., also gives seconds: "HH:mm:SS", or with the date: "YYYY-MM-DDTHH:mm:SS".

Wikitext for which the date formatting feature does not apply

[edit]

With a piped link the date formatting feature is disabled. In particular this can be used to link to "25 December", etc.

*Piped link:
**[[{{CURRENTDAY}} {{CURRENTMONTHNAME}}|]] [[{{CURRENTYEAR}}]]
*Numeric date format without leading zeros:
**[[{{CURRENTYEAR}}-1-{{CURRENTDAY}}]]
**[[{{CURRENTYEAR}}]]-[[1-{{CURRENTDAY}}]]
*Numeric date format without year:
**[[01-{{CURRENTDAY2}}]]
*Non-standard month name:
**[[{{CURRENTYEAR}}]] [[{{CURRENTMONTHABBREV}} {{CURRENTDAY}}]]
**[[{{CURRENTYEAR}}]] [[{{CURRENTMONTHABBREV}} {{CURRENTDAY2}}]]
**[[{{CURRENTMONTHABBREV}} {{CURRENTDAY}}]], [[{{CURRENTYEAR}}]]
**[[{{CURRENTMONTHABBREV}} {{CURRENTDAY2}}]], [[{{CURRENTYEAR}}]]
**[[{{CURRENTMONTHABBREV}} {{CURRENTDAY}}]] [[{{CURRENTYEAR}}]]
**[[{{CURRENTMONTHABBREV}} {{CURRENTDAY2}}]] [[{{CURRENTYEAR}}]]
**[[{{CURRENTDAY}} {{CURRENTMONTHABBREV}}]] [[{{CURRENTYEAR}}]]
**[[{{CURRENTDAY2}} {{CURRENTMONTHABBREV}}]] [[{{CURRENTYEAR}}]]
**[[{{CURRENTMONTHABBREV}} {{CURRENTDAY}}]]
**[[{{CURRENTMONTHABBREV}} {{CURRENTDAY2}}]]
**[[{{CURRENTDAY}} {{CURRENTMONTHABBREV}}]]
**[[{{CURRENTDAY2}} {{CURRENTMONTHABBREV}}]]

gives:

Unfortunately, when linking to content about a specific date (with a separate page, a section of a page, or another anchor) the date formatting feature cannot be used for the link label, so the label is fixed, not user-dependent.

When linking to another site (with an interwiki link or external link) the label cannot be user-dependent either.

Example:

  • [[w:Portal:Current events/2007 March {{CURRENTDAY}}|{{CURRENTDAY}} March 2007]] gives 25 March 2007.

When pages describing events link like this to the dates they happened or will happen (with internal links, not interwiki links) we can find the events on a given date with e.g. w:Special:Whatlinkshere/Portal:Current_events/2007 March 25.

Date range

[edit]

Attempts:

Only the last, cumbersome, way does not give strange results in any user-specified date format. Since the date-formatting feature does not work well here one may choose not to use it in this case; that also gives the freedom to choose link targets exactly as desired, e.g.:

  • [[w:Portal:Current events/2006 November 14|14]]–[[w:Portal:Current events/2006 November 26|26 November 2006]] giving 1426 November 2006

or

See also date ranges (discussion).

List of dates

[edit]

With preference mdy, in a list of dates, grouping parts of dates to full dates may be ambiguous:

[[1 {{CURRENTMONTHNAME}}]] [[{{CURRENTYEAR}}]], [[2 February]] [[2002]] gives 1 December 2024, 2 February 2002.

  • dmy: 1 December 2024, 2 February 2002
  • mdy: December 1, February 2, 2024, 2002
  • ymd: 2024 December 1, 2002 February 2
  • yyyymmdd: 2024-01-01, 2002-02-02
  • no pref: 1 December 2024, 2 February 2002

[[December 1]] [[2024]], [[February 2]] [[2002]] gives December 1 2024, February 2 2002.

  • dmy: 1 December 2024, 2 February 2002
  • mdy: December 1, February 2, 2024, 2002
  • ymd: 2024 December 1, 2002 February 2
  • yyyymmdd: 2024-01-01, 2002-02-02
  • no pref: December 1, 2024 February 2, 2002

Accessibility of date preference for branching

[edit]

The date format cannot be detected with #ifeq, because the date format is converted after expansion of parser functions.

See also

[edit]
Help contents
Meta · Wikinews · Wikipedia · Wikiquote · Wiktionary · Commons: · Wikidata · MediaWiki · Wikibooks · Wikisource · MediaWiki: Manual · Google
Versions of this help page (for other languages see further)
What links here on Meta or from Meta · Wikipedia · MediaWiki
Reading
Go · Search · Namespace · Page naming · Section · Backlinks · Redirect · Category · Image page · Special pages · Printing
Tracking changes
Recent changes (enhanced) | Related changes · Watching pages · Diff · Page history · Edit summary · User contributions · Minor edit · Patrolled edit
Logging in and preferences
Logging in · Preferences
Editing
Starting a new page · Advanced editing · Editing FAQ · Export · Import · Shortcuts · Edit conflict · Page size
Referencing
Links · URL ·  · Footnotes
Style and formatting
Wikitext examples · CSS · Reference card · HTML in wikitext · Formula · Lists · Table · Sorting · Colors · Images and file uploads
Fixing mistakes
Show preview · Reverting edits
Advanced functioning
Expansion · Template · Advanced templates · Parser function · Magic words · System message · Substitution · Arrays · Expr parser function syntax · Transclusion
Others
Special characters · Renaming (moving) a page · Preparing a page for translation · Talk pages · Signatures · Sandbox · Legal issues for editors
Other languages: