Class CakeTime

Time Helper class for easy use of time data.

Manipulation of time data.

Package: Cake\Utility
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Link: http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html
Located at Cake/Utility/CakeTime.php

Method Detail

__getsource public

__get( string $name )

Magic set method for backwards compatibility. Used by TimeHelper to get static variables in CakeTime

Parameters

string $name
Variable name

Returns

mixed
mixed

__setsource public

__set( string $name , mixes $value )

Magic set method for backwards compatibility. Used by TimeHelper to modify static variables in CakeTime

Parameters

string $name
Variable name
mixes $value
Variable value

_strftimesource protected static

_strftime( string $format , integer $date )

Multibyte wrapper for strftime.

Handles utf8_encoding the result of strftime when necessary.

Parameters

string $format
Format string.
integer $date
Timestamp to format.

Returns

string
formatted string with correct encoding.

_translateSpecifiersource protected static

_translateSpecifier( array $specifier )

Auxiliary function to translate a matched specifier element from a regular expression into a Windows safe and i18n aware specifier

Parameters

array $specifier
match from regular expression

Returns

string
converted element

convertsource public static

convert( string $serverTime , string|DateTimeZone $timezone )

Converts given time (in server's time zone) to user's local time, given his/her timezone.

Parameters

string $serverTime
UNIX timestamp
string|DateTimeZone $timezone
User's timezone string or DateTimeZone object

Returns

integer
UNIX timestamp

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::convert

convertSpecifierssource public static

convertSpecifiers( string $format , string $time null )

Converts a string representing the format for the function strftime and returns a Windows safe and i18n aware format.

Parameters

string $format
Format with specifiers for strftime function. Accepts the special specifier %S which mimics the modifier S for date()
string $time optional null
UNIX timestamp

Returns

string
Windows safe and date() function compatible format for strftime

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::convertSpecifiers

dayAsSqlsource public static

dayAsSql( integer|string|DateTime $dateString , string $fieldName , string|DateTimeZone $timezone null )

Returns a partial SQL string to search for all records between two times occurring on the same day.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string $fieldName
Name of database field to compare with
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

string
Partial SQL string.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::dayAsSql

daysAsSqlsource public static

daysAsSql( integer|string|DateTime $begin , integer|string|DateTime $end , string $fieldName , string|DateTimeZone $timezone null )

Returns a partial SQL string to search for all records between two dates.

Parameters

integer|string|DateTime $begin
UNIX timestamp, strtotime() valid string or DateTime object
integer|string|DateTime $end
UNIX timestamp, strtotime() valid string or DateTime object
string $fieldName
Name of database field to compare with
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

string
Partial SQL string.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::daysAsSql

formatsource public static

format( integer|string|DateTime $date , integer|string|DateTime $format null , boolean|string $default false , string|DateTimeZone $timezone null )

Returns a formatted date string, given either a UNIX timestamp or a valid strtotime() date string. This function also accepts a time string and a format string as first and second parameters. In that case this function behaves as a wrapper for TimeHelper::i18nFormat()

Examples

Create localized & formatted time:

CakeTime::format('2012-02-15', '%m-%d-%Y'); // returns 02-15-2012
CakeTime::format('2012-02-15 23:01:01', '%c'); // returns preferred date and time based on configured locale
CakeTime::format('0000-00-00', '%d-%m-%Y', 'N/A'); // return N/A becuase an invalid date was passed
CakeTime::format('2012-02-15 23:01:01', '%c', 'N/A', 'America/New_York'); // converts passed date to timezone

Parameters

integer|string|DateTime $date
UNIX timestamp, strtotime() valid string or DateTime object (or a date format string)
integer|string|DateTime $format optional null
date format string (or UNIX timestamp, strtotime() valid string or DateTime object)
boolean|string $default optional false
if an invalid date is passed it will output supplied default value. Pass false if you want raw conversion value
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

string
Formatted date string

See

CakeTime::i18nFormat()

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::format

fromStringsource public static

fromString( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns a UNIX timestamp, given either a UNIX timestamp or a valid strtotime() date string.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

string
Parsed timestamp

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::fromString

gmtsource public static

gmt( integer|string|DateTime $dateString null )

Returns gmt as a UNIX timestamp.

Parameters

integer|string|DateTime $dateString optional null
UNIX timestamp, strtotime() valid string or DateTime object

Returns

integer
UNIX timestamp

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::gmt

i18nFormatsource public static

i18nFormat( integer|string|DateTime $date , string $format null , boolean|string $default false , string|DateTimeZone $timezone null )

Returns a formatted date string, given either a UNIX timestamp or a valid strtotime() date string. It takes into account the default date format for the current language if a LC_TIME file is used.

Parameters

integer|string|DateTime $date
UNIX timestamp, strtotime() valid string or DateTime object
string $format optional null
strftime format string.
boolean|string $default optional false
if an invalid date is passed it will output supplied default value. Pass false if you want raw conversion value
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

string
Formatted and translated date string

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::i18nFormat

isFuturesource public static

isFuture( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if given datetime string is in the future.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
True if datetime string is in the future

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::isFuture

isPastsource public static

isPast( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if given datetime string is in the past.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
True if datetime string is in the past

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::isPast

isThisMonthsource public static

isThisMonth( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if given datetime string is within this month

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
True if datetime string is within current month

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::isThisMonth

isThisWeeksource public static

isThisWeek( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if given datetime string is within this week.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
True if datetime string is within current week

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::isThisWeek

isThisYearsource public static

isThisYear( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if given datetime string is within current year.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
True if datetime string is within current year

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::isThisYear

isTodaysource public static

isToday( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if given datetime string is today.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
True if datetime string is today

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::isToday

isTomorrowsource public static

isTomorrow( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if given datetime string is tomorrow.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
True if datetime string was yesterday

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::isTomorrow

isWithinNextsource public static

isWithinNext( string|integer $timeInterval , integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if specified datetime is within the interval specified, else false.

Parameters

string|integer $timeInterval
the numeric value with space then time type. Example of valid types: 6 hours, 2 days, 1 minute.
integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
bool

listTimezonessource public static

listTimezones( integer|string $filter null , string $country null , boolean $group true )

Get list of timezone identifiers

Parameters

integer|string $filter optional null
A regex to filter identifier Or one of DateTimeZone class constants (PHP 5.3 and above)
string $country optional null
A two-letter ISO 3166-1 compatible country code. This option is only used when $filter is set to DateTimeZone::PER_COUNTRY (available only in PHP 5.3 and above)
boolean $group optional true
If true (default value) groups the identifiers list by primary region

Returns

array
List of timezone identifiers

Since

2.2

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::listTimezones

nicesource public static

nice( integer|string|DateTime $dateString null , string|DateTimeZone $timezone null , string $format null )

Returns a nicely formatted date string for given Datetime string.

See http://php.net/manual/en/function.strftime.php for information on formatting using locale strings.

Parameters

integer|string|DateTime $dateString optional null
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object
string $format optional null
The format to use. If null, CakeTime::$niceFormat is used

Returns

string
Formatted date string

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::nice

niceShortsource public static

niceShort( integer|string|DateTime $dateString null , string|DateTimeZone $timezone null )

Returns a formatted descriptive date string for given datetime string.

If the given date is today, the returned string could be "Today, 16:54". If the given date is tomorrow, the returned string could be "Tomorrow, 16:54". If the given date was yesterday, the returned string could be "Yesterday, 16:54". If the given date is within next or last week, the returned string could be "On Thursday, 16:54". If $dateString's year is the current year, the returned string does not include mention of the year.

Parameters

integer|string|DateTime $dateString optional null
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

string
Described, relative date string

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::niceShort

serverOffsetsource public static

serverOffset( )

Returns server's offset from GMT in seconds.

Returns

integer
Offset

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::serverOffset

timeAgoInWordssource public static

timeAgoInWords( integer|string|DateTime $dateTime , array $options array() )

Returns either a relative or a formatted absolute date depending on the difference between the current time and given datetime. $datetime should be in a strtotime - parsable format, like MySQL's datetime datatype.

Options:

  • format => a fall back format if the relative time is longer than the duration specified by end
  • accuracy => Specifies how accurate the date should be described (array) - year => The format if years > 0 (default "day") - month => The format if months > 0 (default "day") - week => The format if weeks > 0 (default "day") - day => The format if weeks > 0 (default "hour") - hour => The format if hours > 0 (default "minute") - minute => The format if minutes > 0 (default "minute") - second => The format if seconds > 0 (default "second")
  • end => The end of relative time telling
  • relativeString => The printf compatible string when outputting past relative time
  • relativeStringFuture => The printf compatible string when outputting future relative time
  • absoluteString => The printf compatible string when outputting absolute time
  • userOffset => Users offset from GMT (in hours) Deprecated use timezone instead.
  • timezone => The user timezone the timestamp should be formatted in.

Relative dates look something like this:

  • 3 weeks, 4 days ago
  • 15 seconds ago

Default date formatting is d/m/yy e.g: on 18/2/09

The returned string includes 'ago' or 'on' and assumes you'll properly add a word like 'Posted ' before the function output.

NOTE: If the difference is one week or more, the lowest level of accuracy is day

Parameters

integer|string|DateTime $dateTime
Datetime UNIX timestamp, strtotime() valid string or DateTime object
array $options optional array()
Default format if timestamp is used in $dateString

Returns

string
Relative time string.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::timeAgoInWords

timezonesource public static

timezone( string|DateTimeZone $timezone null )

Returns a timezone object from a string or the user's timezone object

Parameters

string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object If null it tries to get timezone from 'Config.timezone' config var

Returns

DateTimeZone
Timezone object

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::timezone

toAtomsource public static

toAtom( string $dateString , string|DateTimeZone $timezone null )

Returns a date formatted for Atom RSS feeds.

Parameters

string $dateString
Datetime string or Unix timestamp
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

string
Formatted date string

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::toAtom

toQuartersource public static

toQuarter( integer|string|DateTime $dateString , boolean $range false )

Returns the quarter

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
boolean $range optional false
if true returns a range in Y-m-d format

Returns

integer|array
1, 2, 3, or 4 quarter of year or array if $range true

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::toQuarter

toRSSsource public static

toRSS( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Formats date for RSS feeds

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

string
Formatted date string

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::toRSS

toServersource public static

toServer( integer|string|DateTime $dateString , string|DateTimeZone $timezone null , string $format 'Y-m-d H:i:s' )

Returns a formatted date in server's timezone.

If a DateTime object is given or the dateString has a timezone segment, the timezone parameter will be ignored.

If no timezone parameter is given and no DateTime object, the passed $dateString will be considered to be in the UTC timezone.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object
string $format optional 'Y-m-d H:i:s'
date format string

Returns

mixed
Formatted date

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::toServer

toUnixsource public static

toUnix( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns a UNIX timestamp from a textual datetime description. Wrapper for PHP function strtotime().

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

integer
Unix timestamp

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::toUnix

wasWithinLastsource public static

wasWithinLast( string|integer $timeInterval , integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if specified datetime was within the interval specified, else false.

Parameters

string|integer $timeInterval
the numeric value with space then time type. Example of valid types: 6 hours, 2 days, 1 minute.
integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
bool

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::wasWithinLast

wasYesterdaysource public static

wasYesterday( integer|string|DateTime $dateString , string|DateTimeZone $timezone null )

Returns true if given datetime string was yesterday.

Parameters

integer|string|DateTime $dateString
UNIX timestamp, strtotime() valid string or DateTime object
string|DateTimeZone $timezone optional null
Timezone string or DateTimeZone object

Returns

boolean
True if datetime string was yesterday

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::wasYesterday

Properties summary

$_timesource

protected static integer

Temporary variable containing the timestamp value, used internally in convertSpecifiers()

null

$niceFormatsource

public static string

The format to use when formatting a time using CakeTime::nice()

The format should use the locale strings as defined in the PHP docs under strftime (http://php.net/manual/en/function.strftime.php)

See

CakeTime::format()
'%a, %b %eS %Y, %H:%M'

$niceShortFormatsource

public static string

The format to use when formatting a time using CakeTime::niceShort() and the difference is between 3 and 7 days

See

CakeTime::niceShort()
'%B %d, %H:%M'

$wordAccuracysource

public static array

The format to use when formatting a time using CakeTime::timeAgoInWords() and the difference is less than CakeTime::$wordEnd

See

CakeTime::timeAgoInWords()
array(
    'year' => 'day',
    'month' => 'day',
    'week' => 'day',
    'day' => 'hour',
    'hour' => 'minute',
    'minute' => 'minute',
    'second' => 'second',
)

$wordEndsource

public static string

The end of relative time telling

See

CakeTime::timeAgoInWords()
'+1 month'

$wordFormatsource

public static string

The format to use when formatting a time using CakeTime::timeAgoInWords() and the difference is more than CakeTime::$wordEnd

See

CakeTime::timeAgoInWords()
'j/n/y'

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.7/class-CakeTime.html