Manual:wfTimestamp
Overview
[edit ]wfTimestamp() (part of GlobalFunctions.php) provides functionality to convert between common timestamp formats, including MediaWiki timestamps, UNIX timestamps, MySQL DATETIME format, RFC 2822 format and more.
See formats below for a full list.
Timestamps will be output without a timezone or in the GMT timezone, as specified by the particular format.
Never use wfTimestamp() when inserting a timestamp into the database. This will break in Postgres and possibly other non-MySQL databases. Instead use $dbw->timestamp()
Usage
[edit ]wfTimestamp( $output_format, $timestamp )
- Returns a timestamp of type string in the format specified by the
$output_formatargument. - Throws
MWExceptionif an incorrect formats is passed via the$output_formatargument. - Returns
falseif an invalid or unrecognized timestamp is passed via the$timestampargument.
| Argument | Default | Notes |
|---|---|---|
$output_format
|
TS_UNIX
|
Must be one of the constants listed in the formats table. |
$timestamp
|
The current time | Should be a literal timestamp (e.g. 2010年12月03日 22:07:25). Any format listed in the formats table can be used.
|
- Call with no arguments to return the current time in UNIX time format.
echo wfTimestamp(); // 1786608930
- Call with one argument to return the current time in the specified format.
echo wfTimestamp( TS_ISO_8601 ); // 2026年08月13日T08:15:30Z
- Call with two arguments to return an arbitrary timestamp in the specified format.
Note that the timestamp can be in any format that wfTimestamp() can output.
$timestamp = 20260830081530;
echo wfTimestamp( TS_ISO_8601, $timestamp ); // 2026年08月13日T08:15:30Z
$timestamp = '2026-08-13T08:15:30Z';
echo wfTimestamp( TS_RFC2822, $timestamp ); // 2026年8月13日 08:15:30 GMT
Formats
[edit ]| Type | Constant | Format[1] | Example | Notes |
|---|---|---|---|---|
MySQL DATETIME |
TS_DB |
Y-m-d H:i:s |
2026年08月13日 08:15:30 | |
| DB2 | TS_DB2 |
Y-m-d H:i:s |
2026年08月13日 08:15:30 | Removed in gerrit:50764
MediaWiki versions:
1.15 – 1.20
|
| Exif | TS_EXIF |
Y:m:d H:i:s |
.&checktime(2026,08,13,':') 08:15:30 | Shouldn't ever be used, but is included for completeness. [2] |
| ISO 8601 (no timezone) | TS_ISO_8601 |
Y-m-d\TH:i:s\Z |
2026年08月13日T08:15:30Z | Used by Special:Export and the API |
| ISO 8601 basic (no timezone) | TS_ISO_8601_BASIC |
Ymd\THis\Z |
20260813T081530Z | Used by ResourceLoader |
| MediaWiki | TS_MW |
YmdHis |
20260813081530 | |
| Oracle | TS_ORACLE |
d-m-Y H:i:s.000000 |
13-08-2026 08:15:30.000000 | Was 'd-M-y h.i.s A' . ' +00:00' before phab:rSVN51500 |
| PostgreSQL | TS_POSTGRES |
Y-m-d H:i:s+00 |
2026年08月13日 08:15:30+00 | Was 'Y-m-d H:i:s' . ' GMT' before gerrit:459601 |
| RFC 2822 | TS_RFC2822 |
D, d M Y H:i:s |
2026年8月13日 08:15:30 GMT | For email and HTTP headers |
| UNIX time | TS_UNIX |
U |
1786608930 | Number of seconds since 1970年01月01日 00:00:00 UTC |
- ↑ Formatting codes per PHP's
date()function. - ↑ Documented on page 28 (for the DateTime tag) and page 36 (for the DateTimeOriginal and DateTimeDigitized tags) of the Exif 2.2 specification. Download the specification at http://exif.org/Exif2-2.PDF
See also
[edit ]- wfTimestamp() - source docs