MediaWiki  1.27.1
MWTimestamp Class Reference

Library for creating and parsing MW-style timestamps. More...

Public Member Functions

 __construct ($timestamp=false)
 Make a new timestamp and set it to the specified time, or the current time if unspecified. More...
 
 __toString ()
 
 diff (MWTimestamp $relativeTo)
 Calculate the difference between two MWTimestamp objects. More...
 
 format ($format)
 Format the timestamp in a given format. More...
 
 getHumanTimestamp (MWTimestamp $relativeTo=null, User $user=null, Language $lang=null)
 Get the timestamp in a human-friendly relative format, e.g., "3 days ago". More...
 
 getRelativeTimestamp (MWTimestamp $relativeTo=null, User $user=null, Language $lang=null, array $chosenIntervals=[])
 Generate a purely relative timestamp, i.e., represent the time elapsed between the given base timestamp and this object. More...
 
 getTimestamp ($style=TS_UNIX)
 Get the timestamp represented by this object in a certain form. More...
 
 getTimezone ()
 Get the timezone of this timestamp. More...
 
 getTimezoneMessage ()
 Get the localized timezone message, if available. More...
 
 offsetForUser (User $user)
 Adjust the timestamp depending on the given user's preferences. More...
 
 setTimestamp ($ts=false)
 Set the timestamp to the specified time, or the current time if unspecified. More...
 
 setTimezone ($timezone)
 Set the timezone of this timestamp to the specified timezone. More...
 

Static Public Member Functions

static getInstance ($ts=false)
 Get a timestamp instance in GMT. More...
 
static getLocalInstance ($ts=false)
 Get a timestamp instance in the server local timezone ($wgLocaltimezone) More...
 

Public Attributes

DateTime $timestamp
 The actual timestamp being wrapped (DateTime object). More...
 

Static Public Attributes

static TS_MW
 

Static Private Attributes

static $formats
 Standard gmdate() formats for the different timestamp types. More...
 

Detailed Description

Library for creating and parsing MW-style timestamps.

Based on the JS library that does the same thing.

Since
1.20

Definition at line 31 of file MWTimestamp.php.

Constructor & Destructor Documentation

MWTimestamp::__construct (   $timestamp = false)

Make a new timestamp and set it to the specified time, or the current time if unspecified.

Since
1.20
Parameters
bool | string | int | float$timestampTimestamp to set, or false for current time

Definition at line 61 of file MWTimestamp.php.

References setTimestamp().

Member Function Documentation

MWTimestamp::__toString ( )
Since
1.20
Returns
string

Definition at line 333 of file MWTimestamp.php.

References getTimestamp().

MWTimestamp::diff ( MWTimestamp  $relativeTo)

Calculate the difference between two MWTimestamp objects.

Since
1.22
Parameters
MWTimestamp$relativeToBase time to calculate difference from
Returns
DateInterval|bool The DateInterval object representing the difference between the two dates or false on failure

Definition at line 345 of file MWTimestamp.php.

Referenced by Language\getHumanTimestampInternal(), and getRelativeTimestamp().

MWTimestamp::format (   $format)

Format the timestamp in a given format.

Since
1.22
Parameters
string$formatPattern to format in
Returns
string The formatted timestamp

Definition at line 401 of file MWTimestamp.php.

Referenced by Language\getHumanTimestampInternal(), and getTimezoneMessage().

MWTimestamp::getHumanTimestamp ( MWTimestamp  $relativeTo = null,
User  $user = null,
Language  $lang = null 
)

Get the timestamp in a human-friendly relative format, e.g., "3 days ago".

Determine the difference between the timestamp and the current time, and generate a readable timestamp by returning "<N> <units> ago", where the largest possible unit is used.

Since
1.20
1.22 Uses Language::getHumanTimestamp to produce the timestamp
Deprecated:
since 1.26 Use Language::getHumanTimestamp directly
Parameters
MWTimestamp | null$relativeToThe base timestamp to compare to (defaults to now)
User | null$userUser the timestamp is being generated for (or null to use main context's user)
Language | null$langLanguage to use to make the human timestamp (or null to use main context's language)
Returns
string Formatted timestamp

Definition at line 212 of file MWTimestamp.php.

References $lang, $user, and RequestContext\getMain().

static MWTimestamp::getInstance (   $ts = false)
static

Get a timestamp instance in GMT.

Since
1.22
Parameters
bool | string$tsTimestamp to set, or false for current time
Returns
MWTimestamp The instance

Definition at line 426 of file MWTimestamp.php.

Referenced by Xml\dateMenu(), ReverseChronologicalPager\getDateCond(), Parser\getVariableValue(), and FileRepo\storeTemp().

static MWTimestamp::getLocalInstance (   $ts = false)
static
MWTimestamp::getRelativeTimestamp ( MWTimestamp  $relativeTo = null,
User  $user = null,
Language  $lang = null,
array  $chosenIntervals = [] 
)

Generate a purely relative timestamp, i.e., represent the time elapsed between the given base timestamp and this object.

Parameters
MWTimestamp$relativeToRelative base timestamp (defaults to now)
User$userUse to use offset for
Language$langLanguage to use
array$chosenIntervalsIntervals to use to represent it
Returns
string Relative timestamp

Definition at line 298 of file MWTimestamp.php.

References $lang, $user, diff(), RequestContext\getMain(), Hooks\run(), and wfMessage().

MWTimestamp::getTimestamp (   $style = TS_UNIX)

Get the timestamp represented by this object in a certain form.

Convert the internal timestamp to the specified format and then return it.

Since
1.20
Parameters
int$styleConstant Output format for timestamp
Exceptions
TimestampException
Returns
string The formatted timestamp

Definition at line 175 of file MWTimestamp.php.

References $output, TS_MW, TS_POSTGRES, and TS_RFC2822.

Referenced by __toString(), and Language\getHumanTimestampInternal().

MWTimestamp::getTimezone ( )

Get the timezone of this timestamp.

Since
1.22
Returns
DateTimeZone The timezone

Definition at line 370 of file MWTimestamp.php.

MWTimestamp::getTimezoneMessage ( )

Get the localized timezone message, if available.

Premade translations are not shipped as format() may return whatever the system uses, localized or not, so translation must be done through wiki.

Since
1.27
Returns
Message The localized timezone message

Definition at line 383 of file MWTimestamp.php.

References $key, format(), and wfMessage().

MWTimestamp::offsetForUser ( User  $user)

Adjust the timestamp depending on the given user's preferences.

Since
1.22
Parameters
User$userUser to take preferences from
Returns
DateInterval Offset that was applied to the timestamp

Definition at line 230 of file MWTimestamp.php.

References $e, $wgLocalTZoffset, User\getOption(), and global.

Referenced by Language\getHumanTimestamp().

MWTimestamp::setTimestamp (   $ts = false)

Set the timestamp to the specified time, or the current time if unspecified.

Parse the given timestamp into either a DateTime object or a Unix timestamp, and then store it.

Since
1.20
Parameters
string | bool$tsTimestamp to store, or false for now
Exceptions
TimestampException

Definition at line 76 of file MWTimestamp.php.

References $e, and of.

Referenced by __construct().

MWTimestamp::setTimezone (   $timezone)

Set the timezone of this timestamp to the specified timezone.

Since
1.22
Parameters
string$timezoneTimezone to set
Exceptions
TimestampException

Definition at line 356 of file MWTimestamp.php.

References $e.

Member Data Documentation

MWTimestamp::$formats
staticprivate
Initial value:
= [
TS_UNIX => 'U'

Standard gmdate() formats for the different timestamp types.

Definition at line 35 of file MWTimestamp.php.

DateTime MWTimestamp::$timestamp

The actual timestamp being wrapped (DateTime object).

Definition at line 51 of file MWTimestamp.php.

Referenced by getLocalInstance().

MWTimestamp::TS_MW
static
Initial value:
=> 'YmdHis',
TS_DB => 'Y-m-d H:i:s',
TS_ISO_8601 => 'Y-m-d\TH:i:s\Z',
TS_ISO_8601_BASIC => 'Ymd\THis\Z',
TS_EXIF => 'Y:m:d H:i:s',
TS_RFC2822 => 'D, d M Y H:i:s',
TS_ORACLE => 'd-m-Y H:i:s.000000',
TS_POSTGRES => 'Y-m-d H:i:s',
]

Definition at line 37 of file MWTimestamp.php.

Referenced by getTimestamp().


The documentation for this class was generated from the following file: