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(); // 1716898904

Call with one argument to return the current time in the specified format.

echo wfTimestamp( TS_ISO_8601 ); // 2024-05-28T12:21:44Z

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 = 20240544122144; echo wfTimestamp( TS_ISO_8601, $timestamp ); // 2024-05-28T12:21:44Z $timestamp = '2024-05-28T12:21:44Z'; echo wfTimestamp( TS_RFC2822, $timestamp ); // Tue, 28 May 2024 12:21:44 GMT

Formats

edit
Type Constant Format[1] Example Notes
MySQL DATETIME TS_DB Y-m-d H:i:s 2024-05-28 12:21:44
DB2 TS_DB2 Y-m-d H:i:s 2024-05-28 12:21:44 Removed in gerrit:50764
MediaWiki versions:
1.15 – 1.20
Exif TS_EXIF Y:m:d H:i:s 2024:05:28 12:21:44 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-05-28T12:21:44Z Used by Special:Export and the API
ISO 8601 basic (no timezone) TS_ISO_8601_BASIC Ymd\THis\Z 20240528T122144Z Used by ResourceLoader
MediaWiki TS_MW YmdHis 20240528122144
Oracle TS_ORACLE d-m-Y H:i:s.000000 28-05-2024 12:21:44.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-05-28 12:21:44+00 Was 'Y-m-d H:i:s' . ' GMT' before gerrit:459601
RFC 2822 TS_RFC2822 D, d M Y H:i:s Tue, 28 May 2024 12:21:44 GMT For email and HTTP headers
UNIX time TS_UNIX U 1716898904 Number of seconds since 1970-01-01 00:00:00 UTC
  1. Formatting codes per PHP's date() function.
  2. 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