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_format
argument. - Throws
MWException
if an incorrect formats is passed via the$output_format
argument. - Returns
false
if an invalid or unrecognized timestamp is passed via the$timestamp
argument.
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(); // 1732638604
- Call with one argument to return the current time in the specified format.
echo wfTimestamp( TS_ISO_8601 ); // 2024-11-26T16:30:04Z
- 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 = 20241104163004;
echo wfTimestamp( TS_ISO_8601, $timestamp ); // 2024-11-26T16:30:04Z
$timestamp = '2024-11-26T16:30:04Z';
echo wfTimestamp( TS_RFC2822, $timestamp ); // Tue, 26 Nov 2024 16:30:04 GMT
Formats
[edit]Type | Constant | Format[1] | Example | Notes | ||
---|---|---|---|---|---|---|
MySQL DATETIME |
TS_DB |
Y-m-d H:i:s |
2024-11-26 16:30:04 | |||
DB2 | TS_DB2 |
Y-m-d H:i:s |
2024-11-26 16:30:04 | Removed in gerrit:50764
| ||
Exif | TS_EXIF |
Y:m:d H:i:s |
2024:11:26 16:30:04 | 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 |
2024-11-26T16:30:04Z | Used by Special:Export and the API | ||
ISO 8601 basic (no timezone) | TS_ISO_8601_BASIC |
Ymd\THis\Z |
20241126T163004Z | Used by ResourceLoader | ||
MediaWiki | TS_MW |
YmdHis |
20241126163004 | |||
Oracle | TS_ORACLE |
d-m-Y H:i:s.000000 |
26-11-2024 16:30:04.000000 | Was 'd-M-y h.i.s A' . ' +00:00' before phab:rSVN51500 | ||
PostgreSQL | TS_POSTGRES |
Y-m-d H:i:s+00 |
2024-11-26 16:30:04+00 | Was 'Y-m-d H:i:s' . ' GMT' before gerrit:459601 | ||
RFC 2822 | TS_RFC2822 |
D, d M Y H:i:s |
Tue, 26 Nov 2024 16:30:04 GMT | For email and HTTP headers | ||
UNIX time | TS_UNIX |
U |
1732638604 | 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