Manual:Timestamp
The format of timestamps used in MediaWiki URLs and in some of the MediaWiki database fields is yyyymmddhhmmss
.
For example, the timestamp for 2025-01-08 04:33:30 (UTC)
is 20250108043330
.
The timezone for these timestamps is UTC.
MediaWiki's wfTimestamp()
function provides a convenient way to convert from timestamps in common formats to the MediaWiki timestamp format and vice versa.
Read Manual:wfTimestamp for more details.
Never use wfTimestamp()
when inserting a timestamp into the database; this will break in PostgreSQL and possibly other non-MySQL databases.
Instead use DatabaseBase::timestamp()
, aka $dbw->timestamp()
, which converts a timestamp in one of the formats accepted by wfTimestamp()
to the format used for inserting into timestamp fields in this DBMS.
wfTimestampNow()
is a convenience function that returns a MediaWiki timestamp for the present time.
MediaWiki stores timestamps as strings rather than native timestamp types because MySQL's TIMESTAMP type had major limitations when MediaWiki was first written.[1]
Datatypes
Here are the various timestamp datatypes used in the MediaWiki core:
binary(14)
- filearchive.fa_deleted_timestamp
- filearchive.fa_timestamp
- job.job_timestamp
- job.job_token_timestamp
- user.user_email_authenticated
- user.user_email_token_expires
- user_newtalk.user_last_timestamp
- user.user_newpass_time
- user.user_registration
- watchlist.wl_notificationtimestamp
binary(14) NOT NULL
- archive.ar_timestamp
- image.img_timestamp
- ipblocks.ipb_timestamp
- ip_changes.ipc_rev_timestamp <translate> (introduced in <tvar
- msg_resource.mr_timestamp <translate> (removed in <tvar name=2>1.27</tvar>)</translate>
- objectcache.exptime <translate> (introduced in <tvar
- oldimage.oi_timestamp
- page.page_touched
- protected_titles.pt_timestamp
- recentchanges.rc_timestamp
- revision.rev_timestamp
- revision_actor_temp.revactor_timestamp <translate> (introduced in <tvar
- transcache.tc_time <translate> (removed in <tvar name=2>1.32</tvar>)</translate>
- uploadstash.us_timestamp
- user.user_touched
- watchlist_expiry.we_expiry <translate> (introduced in <tvar
binary(14) NOT NULL default '19700101000000'
varbinary(14)
- page.page_links_updated
- page_restrictions.pr_expiry
- user.user_password_expires <translate> (introduced in <tvar
- user_groups.ug_expiry <translate> (introduced in <tvar
varbinary(14) NOT NULL
varbinary(14) NOT NULL default ''
- recentchanges.rc_cur_time <translate> (removed in <tvar name=2>1.24</tvar>)</translate>