Help:Time function
The time function, or #time, is the MediaWiki parser function to display a date/time in other formats. For example:
-
-
- {{#time:j F Y}} shows: 10 December 2016, the current UTC date
- {{#time:F j, Y}} shows: December 10, 2016, the current date in mdy format
- {{#time:Y-m-d}} shows: 2016-12-10, current ISO 8601 date
- {{#time:H:i:s}} shows: 21:42:47, current time-of-day
- {{#time:l}} shows "Saturday" as current day of week
- {{#time:\d\a\y D}} shows "day Sat" as current 3-letter day
- {{#time:F j. Y|7 May 2013|de}} shows "Mai 7. 2013" as a date in German
- {{#time:xij xiF xiY}} shows "20 Azar 1395" as current date in Iranian calendar
-
There are over 35 date format codes (see below: Time format codes) to rearrange the day-month-year, or hour-minute-second (such as 'j' for day, 'H' for hour, or el 'l' to show day-of-week). Other letters are treated as literal text, or use backslash to escape the format ('\d'
shows 'd'). Parameter 2 can designate some other date/time (in any of several typical formats), while a 2-letter language code can be specified as parameter 3 to translate a month name into another language.
Beyond the Gregorian calendar, the #time function can also convert a date into some other calendars by using x-codes (x_): Islamic (xm), Iranian (xi), Hebrew (xj), Thai (xk), Minguo (xo), or the Japanese calendar (xt). For example, to show the Islamic date, as the month and year: {{#time:xmF xmY}} → Rabi' al-awwal 1438.
The #time function can show numerals in some other number systems by using x-codes (x_), including: Hindi (xn or xN), Hebrew (xh), and Roman numerals (xr). For example, to show the current time, H:i:s, in Roman numerals: {{#time:xrH:xri:xrs}} → XXI:XLII:XLVII. See more examples below: Time format codes.
General features
The #time parser function takes a date and/or time (in the Gregorian calendar) and formats it according to the syntax given. A date/time object can be specified; the default is the value of the magic word {{CURRENTTIMESTAMP}} – that is, the time the page was last rendered into HTML.
- {{#time: format string }}
- {{#time: format string | date/time object }}
- {{#time: format string | date/time object | language code }}
The list of accepted formatting codes is given in the table below. Any character in the formatting string that is not recognised is passed through unaltered; this applies also to blank spaces (the system does not need them for interpreting the codes). There are also two ways to escape characters within the formatting string:
- A backslash followed by a formatting character is interpreted as a single literal character
- Characters enclosed in double quotes are considered literal characters, and the quotes are removed.
In addition, the digraph xx is interpreted as a single literal "x".
- {{#time: Y-m-d }} → 2016-12-10
- {{#time: [[Y]] m d }} → 2016 12 10
- {{#time: [[Y (year)]] }} → 2016 (16UTCpmSat, 10 Dec 2016 21:42:47 +0000)
- {{#time: [[Y "(year)"]] }} → 2016 (year)
- {{#time: i's" }} → 42'47"
The date/time object can be in any format accepted by PHP's strtotime() function. Both absolute (e.g., 20 December 2000) and relative (e.g., +20 hours) times are accepted.
{{#time: r|now}} → Sat, 10 Dec 2016 21:42:47 +0000
{{#time: r|+2 hours}} → Sat, 10 Dec 2016 23:42:47 +0000
{{#time: r|now + 2 hours}} → Sat, 10 Dec 2016 23:42:47 +0000
The two-letter language code in ISO 639-1 allows the string to be displayed in the chosen language {{#time:d F Y|1988-02-28|nl}} → 28 februari 1988
{{#time:l|now|uk}} → субота
{{#time:d xg Y|20 June 2010|pl}} → 20 czerwca 2010
If you've calculated a Unix timestamp, you may use it in date calculations by pre-pending an @ symbol.
{{#time: U | now }} → 1481406167
{{#time: r|@1481406167}} → Sat, 10 Dec 2016 21:42:47 +0000
Full or partial absolute dates can be specified; the function will "fill in" parts of the date that are not specified using the current values:
- {{#time: Y | January 1 }} → 2016
Many options are provided.
Time format codes
The following table explains the 35 various codes for date/time formats, plus the codes for months in other languages, and the x-codes (x_) to convert to some other calendars or number systems.
Code | Description | Current output (Purge this page's cache to update) |
---|---|---|
Year | ||
Y | 4-digit year. | 2016 |
y | 2-digit year. | 16 |
L | 1 if it's a leap year, 0 if not. | 1 |
o ¹ | ISO-8601 year of the specified week. ² | 2016 ³ |
¹ Requires PHP 5.1.0 and newer and rev:45208. |
||
Month | ||
n | Month index, not zero-padded. | 12 |
m | Month index, zero-padded. | 12 |
M | An abbreviation of the month name, in the site language. | Dec |
F | The full month name in the site language. | December |
xg | Output the full month name in the genitive form for site languages that distinguish between genitive and nominative forms. | For Polish:
(nominative) {{#time:d F Y|20 June 2010}|pl}} → 20 czerwiec 2010 (genitive) {{#time:d xg Y|20 June 2010|pl}} → 20 czerwca 2010 |
Week | ||
W | ISO 8601 week number, zero-padded. | 49 |
Day | ||
j | Day of the month, not zero-padded. | 10 |
d | Day of the month, zero-padded. | 10 |
z | Day of the year (January 1 = 0). [[#ref_{{{1}}}|^]] To get the ISO day of the year add 1. |
344 |
D | An abbreviation for the day of the week. Rarely internationalised. | Sat |
l | The full weekday name. Rarely internationalised. | Saturday |
N | ISO 8601 day of the week (Monday = 1, Sunday = 7). | 6 |
w | Number of the day of the week (Sunday = 0, Saturday = 6). | 6 |
Hour | ||
a | "am" during the morning (00:00:00 → 11:59:59), "pm" otherwise (12:00:00 → 23:59:59). | pm |
A | Uppercase version of a above. | PM |
g | Hour in 12-hour format, not zero-padded. | 9 |
h | Hour in 12-hour format, zero-padded. | 09 |
G | Hour in 24-hour format, not zero-padded. | 21 |
H | Hour in 24-hour format, zero-padded. | 21 |
Minutes and seconds | ||
i | Minutes past the hour, zero-padded. | 42 |
s | Seconds past the minute, zero-padded. | 47 |
U | Seconds since January 1 1970 00:00:00 GMT. | 1481406167 |
Timezone (as of 1.22wmf2) | ||
e | Timezone identifier. | UTC |
I | Whether or not the date is in daylight savings time. | 0 |
O | Difference to Greenwich time (GMT) | +0000 |
P | Difference to Greenwich time (GMT), with colon | +00:00 |
T | Timezone abbreviation. | UTC |
Z | Timezone offset in seconds. | 0 |
Miscellaneous | ||
t | Number of days in the current month. | 31 |
c | ISO 8601 formatted date, equivalent to Y-m-d"T"H:i:s+00:00. | 2016-12-10T21:42:47+00:00 |
r | RFC 5322 formatted date, equivalent to D, j M Y H:i:s +0000, with weekday name and month name not internationalised. | Sat, 10 Dec 2016 21:42:47 +0000 |
Non-Gregorian calendars | ||
Islamic | ||
xmj | Day of the month. | 10 |
xmF | Full month name. | Rabi' al-awwal |
xmn | Month index. | 3 |
xmY | Full year. | 1438 |
Iranian (Jalaly) | ||
xij | Day of the month. | 20 |
xiF | Full month name. | Azar |
xin | Month index. | 9 |
xiY | Full year. | 1395 |
xiy | 2-digit year. | 95 |
Hebrew | ||
xjj | Day of the month. | 10 |
xjF | Full month name. | Kislev |
xjt | Number of days in month. | 29 |
xjx | Genitive form of the month name. | Kislev |
xjn | Month number. | 3 |
xjY | Full year. | 5777 |
Thai solar | ||
xkY | Full year. | 2559 |
Minguo/Juche year | ||
xoY | Full year. | 105 |
Japanese nengo | ||
xtY | Full year. | 平成28 |
Flags | ||
xn | Format the next numeric code as a raw ASCII number. | In the Hindi language, {{#time:H, xnH}} produces ०६, 06. |
xN | Like xn, but as a toggled flag, which endures until the end of the string or until the next appearance of xN in the string. | |
xr | Format the next number as a Roman numeral. Only works for numbers up to 10,000 (up to 3,000 in pre MediaWiki 1.20). |
{{#time:xrY}} → MMXVI |
|
Format the next number as a Hebrew numeral. | {{#time:xhY}} → ב'ט"ז |
See also
- Template:Time, the current date/time
- Template:Now, shows a sentence with the current date/time
- Template:TODAY, shows only the current date, in typical dmy form
- Template:Today, a navbox about the U.S. daily TV talk-show Today
- mw:Help:Extension:ParserFunctions # #time, developer's documentation page