\Cake\ChronosMutableDate

A mutable date object that converts all time components into 00:00:00.

This class is useful when you want to represent a calendar date and ignore times. This means that timezone changes take no effect as a calendar date exists in all timezones in each respective date.

Summary

Methods
Properties
Constants
getWeekendDays()
setWeekendDays()
eq()
ne()
gt()
gte()
lt()
lte()
between()
closest()
farthest()
min()
max()
isWeekday()
isWeekend()
isYesterday()
isToday()
isTomorrow()
isNextWeek()
isLastWeek()
isNextMonth()
isLastMonth()
isNextYear()
isLastYear()
isFuture()
isPast()
isLeapYear()
isSameDay()
isSunday()
isMonday()
isTuesday()
isWednesday()
isThursday()
isFriday()
isSaturday()
isThisWeek()
isThisMonth()
isThisYear()
isBirthday()
wasWithinLast()
isWithinNext()
isMutable()
diffInYears()
diffInMonths()
diffInWeeks()
diffInDays()
diffInDaysFiltered()
diffInHoursFiltered()
diffFiltered()
diffInWeekdays()
diffInWeekendDays()
diffInHours()
diffInMinutes()
diffInSeconds()
secondsSinceMidnight()
secondsUntilEndOfDay()
fromNow()
diffForHumans()
diffFormatter()
instance()
parse()
now()
today()
tomorrow()
yesterday()
maxValue()
minValue()
create()
createFromDate()
createFromTime()
createFromFormat()
createFromTimestamp()
createFromTimestampUTC()
getLastErrors()
resetToStringFormat()
setToStringFormat()
__toString()
toDateString()
toFormattedDateString()
toTimeString()
toDateTimeString()
toDayDateTimeString()
toAtomString()
toCookieString()
toIso8601String()
toRfc822String()
toRfc850String()
toRfc1036String()
toRfc1123String()
toRfc2822String()
toRfc3339String()
toRssString()
toW3cString()
toUnixString()
toQuarter()
toWeek()
setTime()
add()
sub()
timezone()
tz()
setTimezone()
setTimestamp()
modify()
__get()
__isset()
getWeekStartsAt()
setWeekStartsAt()
getWeekEndsAt()
setWeekEndsAt()
setDate()
setDateTime()
setTimeFromTimeString()
timestamp()
year()
month()
day()
hour()
minute()
second()
addYears()
addYear()
subYear()
subYears()
addMonths()
addMonth()
subMonth()
subMonths()
addMonthsWithOverflow()
addMonthWithOverflow()
subMonthWithOverflow()
subMonthsWithOverflow()
addDays()
addDay()
subDay()
subDays()
addWeekdays()
addWeekday()
subWeekdays()
subWeekday()
addWeeks()
addWeek()
subWeek()
subWeeks()
addHours()
addHour()
subHour()
subHours()
addMinutes()
addMinute()
subMinute()
subMinutes()
addSeconds()
addSecond()
subSecond()
subSeconds()
startOfDay()
endOfDay()
startOfMonth()
endOfMonth()
startOfYear()
endOfYear()
startOfDecade()
endOfDecade()
startOfCentury()
endOfCentury()
startOfWeek()
endOfWeek()
next()
previous()
firstOfMonth()
lastOfMonth()
nthOfMonth()
firstOfQuarter()
lastOfQuarter()
nthOfQuarter()
firstOfYear()
lastOfYear()
nthOfYear()
average()
setTestNow()
getTestNow()
hasTestNow()
__construct()
toImmutable()
__debugInfo()
$year
$yearIso
$month
$day
$hour
$minute
$second
$timestamp
$timezone
$tz
$micro
$dayOfWeek
$dayOfYear
$weekOfMonth
$weekOfYear
$daysInMonth
$age
$quarter
$offset
$offsetHours
$dst
$local
$utc
$timezoneName
$tzName
No constants found
safeCreateDateTimeZone()
stripTime()
stripRelativeTime()
$weekendDays
$diffFormatter
$_lastErrors
$days
$weekStartsAt
$weekEndsAt
$toStringFormat
N/A
setDateParent()
No private properties found
N/A

Properties

$year

$year : integer

Type

integer

$yearIso

$yearIso : integer

Type

integer

$month

$month : integer

Type

integer

$day

$day : integer

Type

integer

$hour

$hour : integer

Type

integer

$minute

$minute : integer

Type

integer

$second

$second : integer

Type

integer

$timestamp

$timestamp : integer

seconds since the Unix Epoch

Type

integer

$timezone

$timezone : \DateTimeZone

the current timezone

Type

\DateTimeZone

$tz

$tz : \DateTimeZone

alias of timezone

Type

\DateTimeZone

$micro

$micro : integer

Type

integer

$dayOfWeek

$dayOfWeek : integer

1 (for Monday) through 7 (for Sunday)

Type

integer

$dayOfYear

$dayOfYear : integer

0 through 365

Type

integer

$weekOfMonth

$weekOfMonth : integer

1 through 5

Type

integer

$weekOfYear

$weekOfYear : integer

ISO-8601 week number of year, weeks starting on Monday

Type

integer

$daysInMonth

$daysInMonth : integer

number of days in the given month

Type

integer

$age

$age : integer

does a diffInYears() with default parameters

Type

integer

$quarter

$quarter : integer

the quarter of this instance, 1 - 4

Type

integer

$offset

$offset : integer

the timezone offset in seconds from UTC

Type

integer

$offsetHours

$offsetHours : integer

the timezone offset in hours from UTC

Type

integer

$dst

$dst : boolean

daylight savings time indicator, true if DST, false otherwise

Type

boolean

$local

$local : boolean

checks if the timezone is local, true if local, false otherwise

Type

boolean

$utc

$utc : boolean

checks if the timezone is UTC, true if UTC, false otherwise

Type

boolean

$timezoneName

$timezoneName : string

Type

string

$tzName

$tzName : string

Type

string

$weekendDays

$weekendDays : array

Days of weekend

Type

array

$_lastErrors

$_lastErrors : array

Holds the last error generated by createFromFormat

Type

array

$days

$days : array

Names of days of the week.

Type

array

$weekStartsAt

$weekStartsAt : integer

First day of week

Type

integer

$weekEndsAt

$weekEndsAt : integer

Last day of week

Type

integer

$toStringFormat

$toStringFormat : string

Format to use for __toString method when type juggling occurs.

Type

string

Methods

getWeekendDays()

getWeekendDays() : array

Get weekend days

Returns

array

setWeekendDays()

setWeekendDays(array  $days) : void

Set weekend days

Parameters

array $days

Which days are 'weekends'.

eq()

eq(\Cake\Chronos\ChronosInterface  $dt) : boolean

Determines if the instance is equal to another

Parameters

\Cake\Chronos\ChronosInterface $dt

The instance to compare with.

Returns

boolean

ne()

ne(\Cake\Chronos\ChronosInterface  $dt) : boolean

Determines if the instance is not equal to another

Parameters

\Cake\Chronos\ChronosInterface $dt

The instance to compare with.

Returns

boolean

gt()

gt(\Cake\Chronos\ChronosInterface  $dt) : boolean

Determines if the instance is greater (after) than another

Parameters

\Cake\Chronos\ChronosInterface $dt

The instance to compare with.

Returns

boolean

gte()

gte(\Cake\Chronos\ChronosInterface  $dt) : boolean

Determines if the instance is greater (after) than or equal to another

Parameters

\Cake\Chronos\ChronosInterface $dt

The instance to compare with.

Returns

boolean

lt()

lt(\Cake\Chronos\ChronosInterface  $dt) : boolean

Determines if the instance is less (before) than another

Parameters

\Cake\Chronos\ChronosInterface $dt

The instance to compare with.

Returns

boolean

lte()

lte(\Cake\Chronos\ChronosInterface  $dt) : boolean

Determines if the instance is less (before) or equal to another

Parameters

\Cake\Chronos\ChronosInterface $dt

The instance to compare with.

Returns

boolean

between()

between(\Cake\Chronos\ChronosInterface  $dt1, \Cake\Chronos\ChronosInterface  $dt2, boolean  $equal = true) : boolean

Determines if the instance is between two others

Parameters

\Cake\Chronos\ChronosInterface $dt1

The instance to compare with.

\Cake\Chronos\ChronosInterface $dt2

The instance to compare with.

boolean $equal

Indicates if a > and < comparison should be used or <= or >=

Returns

boolean

min()

min(\Cake\Chronos\ChronosInterface|null  $dt = null) : static

Get the minimum instance between a given instance (default now) and the current instance.

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to compare with.

Returns

static

max()

max(\Cake\Chronos\ChronosInterface|null  $dt = null) : static

Get the maximum instance between a given instance (default now) and the current instance.

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to compare with.

Returns

static

isWeekday()

isWeekday() : boolean

Determines if the instance is a weekday

Returns

boolean

isWeekend()

isWeekend() : boolean

Determines if the instance is a weekend day

Returns

boolean

isYesterday()

isYesterday() : boolean

Determines if the instance is yesterday

Returns

boolean

isToday()

isToday() : boolean

Determines if the instance is today

Returns

boolean

isTomorrow()

isTomorrow() : boolean

Determines if the instance is tomorrow

Returns

boolean

isNextWeek()

isNextWeek() : boolean

Determines if the instance is within the next week

Returns

boolean

isLastWeek()

isLastWeek() : boolean

Determines if the instance is within the last week

Returns

boolean

isNextMonth()

isNextMonth() : boolean

Determines if the instance is within the next month

Returns

boolean

isLastMonth()

isLastMonth() : boolean

Determines if the instance is within the last month

Returns

boolean

isNextYear()

isNextYear() : boolean

Determines if the instance is within the next year

Returns

boolean

isLastYear()

isLastYear() : boolean

Determines if the instance is within the last year

Returns

boolean

isFuture()

isFuture() : boolean

Determines if the instance is in the future, ie. greater (after) than now

Returns

boolean

isPast()

isPast() : boolean

Determines if the instance is in the past, ie. less (before) than now

Returns

boolean

isLeapYear()

isLeapYear() : boolean

Determines if the instance is a leap year

Returns

boolean

isSameDay()

isSameDay(\Cake\Chronos\ChronosInterface  $dt) : boolean

Checks if the passed in date is the same day as the instance current day.

Parameters

\Cake\Chronos\ChronosInterface $dt

The instance to check against.

Returns

boolean

isSunday()

isSunday() : boolean

Checks if this day is a Sunday.

Returns

boolean

isMonday()

isMonday() : boolean

Checks if this day is a Monday.

Returns

boolean

isTuesday()

isTuesday() : boolean

Checks if this day is a Tuesday.

Returns

boolean

isWednesday()

isWednesday() : boolean

Checks if this day is a Wednesday.

Returns

boolean

isThursday()

isThursday() : boolean

Checks if this day is a Thursday.

Returns

boolean

isFriday()

isFriday() : boolean

Checks if this day is a Friday.

Returns

boolean

isSaturday()

isSaturday() : boolean

Checks if this day is a Saturday.

Returns

boolean

isThisWeek()

isThisWeek() : boolean

Returns true if this object represents a date within the current week

Returns

boolean

isThisMonth()

isThisMonth() : boolean

Returns true if this object represents a date within the current month

Returns

boolean

isThisYear()

isThisYear() : boolean

Returns true if this object represents a date within the current year

Returns

boolean

isBirthday()

isBirthday(\Cake\Chronos\ChronosInterface|null  $dt = null) : static

Check if its the birthday. Compares the date/month values of the two dates.

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to compare with or null to use current day.

Returns

static

wasWithinLast()

wasWithinLast(string|integer  $timeInterval) : boolean

Returns true this instance happened within the specified interval

Parameters

string|integer $timeInterval

the numeric value with space then time type. Example of valid types: 6 hours, 2 days, 1 minute.

Returns

boolean

isWithinNext()

isWithinNext(string|integer  $timeInterval) : boolean

Returns true this instance will happen within the specified interval

Parameters

string|integer $timeInterval

the numeric value with space then time type. Example of valid types: 6 hours, 2 days, 1 minute.

Returns

boolean

isMutable()

isMutable() : boolean

Check if instance of ChronosInterface is mutable.

Returns

boolean

diffInYears()

diffInYears(\Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in years

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInMonths()

diffInMonths(\Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in months

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInWeeks()

diffInWeeks(\Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in weeks

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInDays()

diffInDays(\Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in days

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInDaysFiltered()

diffInDaysFiltered(callable  $callback, \Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in days using a filter callable

Parameters

callable $callback

The callback to use for filtering.

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInHoursFiltered()

diffInHoursFiltered(callable  $callback, \Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in hours using a filter callable

Parameters

callable $callback

The callback to use for filtering.

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffFiltered()

diffFiltered(\Cake\Chronos\ChronosInterval  $ci, callable  $callback, \Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference by the given interval using a filter callable

Parameters

\Cake\Chronos\ChronosInterval $ci

An interval to traverse by

callable $callback

The callback to use for filtering.

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInWeekdays()

diffInWeekdays(\Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in weekdays

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInWeekendDays()

diffInWeekendDays(\Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in weekend days using a filter

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInHours()

diffInHours(\Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in hours

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInMinutes()

diffInMinutes(\Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in minutes

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

diffInSeconds()

diffInSeconds(\Cake\Chronos\ChronosInterface|null  $dt = null, boolean  $abs = true) : integer

Get the difference in seconds

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to difference from.

boolean $abs

Get the absolute of the difference

Returns

integer

secondsSinceMidnight()

secondsSinceMidnight() : integer

The number of seconds since midnight.

Returns

integer

secondsUntilEndOfDay()

secondsUntilEndOfDay() : integer

The number of seconds until 23:59:59.

Returns

integer

fromNow()

fromNow(\DateTime|\DateTimeImmutable  $datetime) : \DateInterval|boolean

Convenience method for getting the remaining time from a given time.

Parameters

\DateTime|\DateTimeImmutable $datetime

The date to get the remaining time from.

Returns

\DateInterval|boolean —

The DateInterval object representing the difference between the two dates or FALSE on failure.

diffForHumans()

diffForHumans(\Cake\Chronos\ChronosInterface|null  $other = null, boolean  $absolute = false) : string

Get the difference in a human readable format.

When comparing a value in the past to default now: 1 hour ago 5 months ago

When comparing a value in the future to default now: 1 hour from now 5 months from now

When comparing a value in the past to another value: 1 hour before 5 months before

When comparing a value in the future to another value: 1 hour after 5 months after

Parameters

\Cake\Chronos\ChronosInterface|null $other

The datetime to compare with.

boolean $absolute

removes time difference modifiers ago, after, etc

Returns

string

diffFormatter()

diffFormatter(\Cake\Chronos\DifferenceFormatter|null  $formatter = null) : \Cake\Chronos\DifferenceFormatter

Get the difference formatter instance or overwrite the current one.

Parameters

\Cake\Chronos\DifferenceFormatter|null $formatter

The formatter instance when setting.

Returns

\Cake\Chronos\DifferenceFormatter

The formatter instance.

instance()

instance(\DateTimeInterface  $dt) : static

Create a ChronosInterface instance from a DateTimeInterface one

Parameters

\DateTimeInterface $dt

The datetime instance to convert.

Returns

static

parse()

parse(string  $time = 'now', \DateTimeZone|string|null  $tz = null) : static

Create a ChronosInterface instance from a string. This is an alias for the constructor that allows better fluent syntax as it allows you to do ChronosInterface::parse('Monday next week')->fn() rather than (new Chronos('Monday next week'))->fn()

Parameters

string $time

The strtotime compatible string to parse

\DateTimeZone|string|null $tz

The DateTimeZone object or timezone name.

Returns

static

now()

now(\DateTimeZone|string|null  $tz = null) : static

Get a ChronosInterface instance for the current date and time

Parameters

\DateTimeZone|string|null $tz

The DateTimeZone object or timezone name.

Returns

static

today()

today(\DateTimeZone|string|null  $tz = null) : static

Create a ChronosInterface instance for today

Parameters

\DateTimeZone|string|null $tz

The timezone to use.

Returns

static

tomorrow()

tomorrow(\DateTimeZone|string|null  $tz = null) : static

Create a ChronosInterface instance for tomorrow

Parameters

\DateTimeZone|string|null $tz

The DateTimeZone object or timezone name the new instance should use.

Returns

static

yesterday()

yesterday(\DateTimeZone|string|null  $tz = null) : static

Create a ChronosInterface instance for yesterday

Parameters

\DateTimeZone|string|null $tz

The DateTimeZone object or timezone name the new instance should use.

Returns

static

maxValue()

maxValue() : \Cake\Chronos\ChronosInterface

Create a ChronosInterface instance for the greatest supported date.

Returns

\Cake\Chronos\ChronosInterface

minValue()

minValue() : \Cake\Chronos\ChronosInterface

Create a ChronosInterface instance for the lowest supported date.

Returns

\Cake\Chronos\ChronosInterface

create()

create(integer|null  $year = null, integer|null  $month = null, integer|null  $day = null, integer|null  $hour = null, integer|null  $minute = null, integer|null  $second = null, \DateTimeZone|string|null  $tz = null) : static

Create a new ChronosInterface instance from a specific date and time.

If any of $year, $month or $day are set to null their now() values will be used.

If $hour is null it will be set to its now() value and the default values for $minute and $second will be their now() values. If $hour is not null then the default values for $minute and $second will be 0.

Parameters

integer|null $year

The year to create an instance with.

integer|null $month

The month to create an instance with.

integer|null $day

The day to create an instance with.

integer|null $hour

The hour to create an instance with.

integer|null $minute

The minute to create an instance with.

integer|null $second

The second to create an instance with.

\DateTimeZone|string|null $tz

The DateTimeZone object or timezone name the new instance should use.

Returns

static

createFromDate()

createFromDate(integer  $year = null, integer  $month = null, integer  $day = null, \DateTimeZone|string|null  $tz = null) : static

Create a ChronosInterface instance from just a date. The time portion is set to now.

Parameters

integer $year

The year to create an instance with.

integer $month

The month to create an instance with.

integer $day

The day to create an instance with.

\DateTimeZone|string|null $tz

The DateTimeZone object or timezone name the new instance should use.

Returns

static

createFromTime()

createFromTime(integer|null  $hour = null, integer|null  $minute = null, integer|null  $second = null, \DateTimeZone|string|null  $tz = null) : static

Create a ChronosInterface instance from just a time. The date portion is set to today.

Parameters

integer|null $hour

The hour to create an instance with.

integer|null $minute

The minute to create an instance with.

integer|null $second

The second to create an instance with.

\DateTimeZone|string|null $tz

The DateTimeZone object or timezone name the new instance should use.

Returns

static

createFromFormat()

createFromFormat(string  $format, string  $time, \DateTimeZone|string|null  $tz = null) : static

Create a ChronosInterface instance from a specific format

Parameters

string $format

The date() compatible format string.

string $time

The formatted date string to interpret.

\DateTimeZone|string|null $tz

The DateTimeZone object or timezone name the new instance should use.

Throws

\InvalidArgumentException

Returns

static

createFromTimestamp()

createFromTimestamp(integer  $timestamp, \DateTimeZone|string|null  $tz = null) : static

Create a ChronosInterface instance from a timestamp

Parameters

integer $timestamp

The timestamp to create an instance from.

\DateTimeZone|string|null $tz

The DateTimeZone object or timezone name the new instance should use.

Returns

static

createFromTimestampUTC()

createFromTimestampUTC(integer  $timestamp) : static

Create a ChronosInterface instance from an UTC timestamp

Parameters

integer $timestamp

The UTC timestamp to create an instance from.

Returns

static

getLastErrors()

getLastErrors() : array

Returns any errors or warnings that were found during the parsing of the last object created by this class.

Returns

array

resetToStringFormat()

resetToStringFormat() : void

Reset the format used to the default when type juggling a ChronosInterface instance to a string

setToStringFormat()

setToStringFormat(string  $format) : void

Set the default format used when type juggling a ChronosInterface instance to a string

Parameters

string $format

The format to use in future __toString() calls.

__toString()

__toString() : string

Format the instance as a string using the set format

Returns

string

toDateString()

toDateString() : string

Format the instance as date

Returns

string

toFormattedDateString()

toFormattedDateString() : string

Format the instance as a readable date

Returns

string

toTimeString()

toTimeString() : string

Format the instance as time

Returns

string

toDateTimeString()

toDateTimeString() : string

Format the instance as date and time

Returns

string

toDayDateTimeString()

toDayDateTimeString() : string

Format the instance with day, date and time

Returns

string

toAtomString()

toAtomString() : string

Format the instance as ATOM

Returns

string

toCookieString()

toCookieString() : string

Format the instance as COOKIE

Returns

string

toIso8601String()

toIso8601String() : string

Format the instance as ISO8601

Returns

string

toRfc822String()

toRfc822String() : string

Format the instance as RFC822

Returns

string

toRfc850String()

toRfc850String() : string

Format the instance as RFC850

Returns

string

toRfc1036String()

toRfc1036String() : string

Format the instance as RFC1036

Returns

string

toRfc1123String()

toRfc1123String() : string

Format the instance as RFC1123

Returns

string

toRfc2822String()

toRfc2822String() : string

Format the instance as RFC2822

Returns

string

toRfc3339String()

toRfc3339String() : string

Format the instance as RFC3339

Returns

string

toRssString()

toRssString() : string

Format the instance as RSS

Returns

string

toW3cString()

toW3cString() : string

Format the instance as W3C

Returns

string

toUnixString()

toUnixString() : string

Returns a UNIX timestamp.

Returns

string —

UNIX timestamp

toQuarter()

toQuarter(boolean  $range = false) : integer|array

Returns the quarter

Parameters

boolean $range

Range.

Returns

integer|array —

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

toWeek()

toWeek() : integer

Returns

integer

setTime()

setTime(integer  $hours, integer  $minutes, integer  $seconds = null, integer  $microseconds = null) : static

Modify the time on the Date.

This method ignores all inputs and forces all inputs to 0.

Parameters

integer $hours

The hours to set (ignored)

integer $minutes

The minutes to set (ignored)

integer $seconds

The seconds to set (ignored)

integer $microseconds

The microseconds to set (ignored)

Returns

static —

A modified Date instance.

add()

add(\DateInterval  $interval) : static

Add an Interval to a Date

Any changes to the time will be ignored and reset to 00:00:00

Parameters

\DateInterval $interval

The interval to modify this date by.

Returns

static —

A modified Date instance

sub()

sub(\DateInterval  $interval) : static

Subtract an Interval from a Date.

Any changes to the time will be ignored and reset to 00:00:00

Parameters

\DateInterval $interval

The interval to modify this date by.

Returns

static —

A modified Date instance

timezone()

timezone(\DateTimeZone|string  $value) : $this

No-op method.

Timezones have no effect on calendar dates.

Parameters

\DateTimeZone|string $value

The DateTimeZone object or timezone name to use.

Returns

$this

tz()

tz(\DateTimeZone|string  $value) : $this

No-op method.

Timezones have no effect on calendar dates.

Parameters

\DateTimeZone|string $value

The DateTimeZone object or timezone name to use.

Returns

$this

setTimezone()

setTimezone(\DateTimeZone|string  $value) : $this

No-op method.

Timezones have no effect on calendar dates.

Parameters

\DateTimeZone|string $value

The DateTimeZone object or timezone name to use.

Returns

$this

setTimestamp()

setTimestamp(integer  $value) : static

Set the timestamp value and get a new object back.

This method will discard the time aspects of the timestamp and only apply the date portions

Parameters

integer $value

The timestamp value to set.

Returns

static

modify()

modify(string  $relative) : static

Overloaded to ignore time changes.

Changing any aspect of the time will be ignored, and the resulting object will have its time frozen to 00:00:00.

Parameters

string $relative

The relative change to make.

Returns

static —

A new date with the applied date changes.

__get()

__get(string  $name) : string|integer|\DateTimeZone

Get a part of the ChronosInterface object

Parameters

string $name

The property name to read.

Throws

\InvalidArgumentException

Returns

string|integer|\DateTimeZone —

The property value.

__isset()

__isset(string  $name) : boolean

Check if an attribute exists on the object

Parameters

string $name

The property name to check.

Returns

boolean —

Whether or not the property exists.

getWeekStartsAt()

getWeekStartsAt() : integer

Get the first day of week

Returns

integer

setWeekStartsAt()

setWeekStartsAt(integer  $day) : void

Set the first day of week

Parameters

integer $day

The day the week starts with.

getWeekEndsAt()

getWeekEndsAt() : integer

Get the last day of week

Returns

integer

setWeekEndsAt()

setWeekEndsAt(integer  $day) : void

Set the last day of week

Parameters

integer $day

The day the week ends with.

setDate()

setDate(integer  $year, integer  $month, integer  $day) : static

Set the date to a different date.

Workaround for a PHP bug related to the first day of a month

Parameters

integer $year

The year to set.

integer $month

The month to set.

integer $day

The day to set.

Returns

static

setDateTime()

setDateTime(integer  $year, integer  $month, integer  $day, integer  $hour, integer  $minute, integer  $second) : static

Set the date and time all together

Parameters

integer $year

The year to set.

integer $month

The month to set.

integer $day

The day to set.

integer $hour

The hour to set.

integer $minute

The minute to set.

integer $second

The second to set.

Returns

static

setTimeFromTimeString()

setTimeFromTimeString(string  $time) : static

Set the time by time string

Parameters

string $time

Time as string.

Returns

static

timestamp()

timestamp(integer  $value) : static

Set the instance's timestamp

Parameters

integer $value

The timestamp value to set.

Returns

static

year()

year(integer  $value) : static

Set the instance's year

Parameters

integer $value

The year value.

Returns

static

month()

month(integer  $value) : static

Set the instance's month

Parameters

integer $value

The month value.

Returns

static

day()

day(integer  $value) : static

Set the instance's day

Parameters

integer $value

The day value.

Returns

static

hour()

hour(integer  $value) : static

Set the instance's hour

Parameters

integer $value

The hour value.

Returns

static

minute()

minute(integer  $value) : static

Set the instance's minute

Parameters

integer $value

The minute value.

Returns

static

second()

second(integer  $value) : static

Set the instance's second

Parameters

integer $value

The seconds value.

Returns

static

addYears()

addYears(integer  $value) : static

Add years to the instance. Positive $value travel forward while negative $value travel into the past.

Parameters

integer $value

The number of years to add.

Returns

static

addYear()

addYear(integer  $value = 1) : static

Add a year to the instance

Parameters

integer $value

The number of years to add.

Returns

static

subYear()

subYear(integer  $value = 1) : static

Remove a year from the instance

Parameters

integer $value

The number of years to remove.

Returns

static

subYears()

subYears(integer  $value) : static

Remove years from the instance.

Parameters

integer $value

The number of years to remove.

Returns

static

addMonths()

addMonths(integer  $value) : static

Add months to the instance. Positive $value travels forward while negative $value travels into the past.

When adding or subtracting months, if the resulting time is a date that does not exist, the result of this operation will always be the last day of the intended month.

Example:

 (new Chronos('2015-01-03'))->addMonths(1); // Results in 2015-02-03

 (new Chronos('2015-01-31'))->addMonths(1); // Results in 2015-02-28

Parameters

integer $value

The number of months to add.

Returns

static

addMonth()

addMonth(integer  $value = 1) : static

Add a month to the instance

When adding or subtracting months, if the resulting time is a date that does not exist, the result of this operation will always be the last day of the intended month.

Example:

 (new Chronos('2015-01-03'))->addMonth(); // Results in 2015-02-03

 (new Chronos('2015-01-31'))->addMonth(); // Results in 2015-02-28

Parameters

integer $value

The number of months to add.

Returns

static

subMonth()

subMonth(integer  $value = 1) : static

Remove a month from the instance

When adding or subtracting months, if the resulting time is a date that does not exist, the result of this operation will always be the last day of the intended month.

Example:

 (new Chronos('2015-03-01'))->subMonth(); // Results in 2015-02-01

 (new Chronos('2015-03-31'))->subMonth(); // Results in 2015-02-28

Parameters

integer $value

The number of months to remove.

Returns

static

subMonths()

subMonths(integer  $value) : static

Remove months from the instance

When adding or subtracting months, if the resulting time is a date that does not exist, the result of this operation will always be the last day of the intended month.

Example:

 (new Chronos('2015-03-01'))->subMonths(1); // Results in 2015-02-01

 (new Chronos('2015-03-31'))->subMonths(1); // Results in 2015-02-28

Parameters

integer $value

The number of months to remove.

Returns

static

addMonthsWithOverflow()

addMonthsWithOverflow(integer  $value) : static

Add months with overflowing to the instance. Positive $value travels forward while negative $value travels into the past.

Parameters

integer $value

The number of months to add.

Returns

static

addMonthWithOverflow()

addMonthWithOverflow(integer  $value = 1) : static

Add a month with overflow to the instance

Parameters

integer $value

The number of months to add.

Returns

static

subMonthWithOverflow()

subMonthWithOverflow(integer  $value = 1) : static

Remove a month with overflow from the instance

Parameters

integer $value

The number of months to remove.

Returns

static

subMonthsWithOverflow()

subMonthsWithOverflow(integer  $value) : static

Remove months with overflow from the instance

Parameters

integer $value

The number of months to remove.

Returns

static

addDays()

addDays(integer  $value) : static

Add days to the instance. Positive $value travels forward while negative $value travels into the past.

Parameters

integer $value

The number of days to add.

Returns

static

addDay()

addDay(integer  $value = 1) : static

Add a day to the instance

Parameters

integer $value

The number of days to add.

Returns

static

subDay()

subDay(integer  $value = 1) : static

Remove a day from the instance

Parameters

integer $value

The number of days to remove.

Returns

static

subDays()

subDays(integer  $value) : static

Remove days from the instance

Parameters

integer $value

The number of days to remove.

Returns

static

addWeekdays()

addWeekdays(integer  $value) : static

Add weekdays to the instance. Positive $value travels forward while negative $value travels into the past.

Parameters

integer $value

The number of weekdays to add.

Returns

static

addWeekday()

addWeekday(integer  $value = 1) : static

Add a weekday to the instance

Parameters

integer $value

The number of weekdays to add.

Returns

static

subWeekdays()

subWeekdays(integer  $value) : static

Remove weekdays from the instance

Parameters

integer $value

The number of weekdays to remove.

Returns

static

subWeekday()

subWeekday(integer  $value = 1) : static

Remove a weekday from the instance

Parameters

integer $value

The number of weekdays to remove.

Returns

static

addWeeks()

addWeeks(integer  $value) : static

Add weeks to the instance. Positive $value travels forward while negative $value travels into the past.

Parameters

integer $value

The number of weeks to add.

Returns

static

addWeek()

addWeek(integer  $value = 1) : static

Add a week to the instance

Parameters

integer $value

The number of weeks to add.

Returns

static

subWeek()

subWeek(integer  $value = 1) : static

Remove a week from the instance

Parameters

integer $value

The number of weeks to remove.

Returns

static

subWeeks()

subWeeks(integer  $value) : static

Remove weeks to the instance

Parameters

integer $value

The number of weeks to remove.

Returns

static

addHours()

addHours(integer  $value) : static

Add hours to the instance. Positive $value travels forward while negative $value travels into the past.

Parameters

integer $value

The number of hours to add.

Returns

static

addHour()

addHour(integer  $value = 1) : static

Add an hour to the instance

Parameters

integer $value

The number of hours to add.

Returns

static

subHour()

subHour(integer  $value = 1) : static

Remove an hour from the instance

Parameters

integer $value

The number of hours to remove.

Returns

static

subHours()

subHours(integer  $value) : static

Remove hours from the instance

Parameters

integer $value

The number of hours to remove.

Returns

static

addMinutes()

addMinutes(integer  $value) : static

Add minutes to the instance. Positive $value travels forward while negative $value travels into the past.

Parameters

integer $value

The number of minutes to add.

Returns

static

addMinute()

addMinute(integer  $value = 1) : static

Add a minute to the instance

Parameters

integer $value

The number of minutes to add.

Returns

static

subMinute()

subMinute(integer  $value = 1) : static

Remove a minute from the instance

Parameters

integer $value

The number of minutes to remove.

Returns

static

subMinutes()

subMinutes(integer  $value) : static

Remove minutes from the instance

Parameters

integer $value

The number of minutes to remove.

Returns

static

addSeconds()

addSeconds(integer  $value) : static

Add seconds to the instance. Positive $value travels forward while negative $value travels into the past.

Parameters

integer $value

The number of seconds to add.

Returns

static

addSecond()

addSecond(integer  $value = 1) : static

Add a second to the instance

Parameters

integer $value

The number of seconds to add.

Returns

static

subSecond()

subSecond(integer  $value = 1) : static

Remove a second from the instance

Parameters

integer $value

The number of seconds to remove.

Returns

static

subSeconds()

subSeconds(integer  $value) : static

Remove seconds from the instance

Parameters

integer $value

The number of seconds to remove.

Returns

static

startOfDay()

startOfDay() : static

Resets the time to 00:00:00

Returns

static

endOfDay()

endOfDay() : static

Resets the time to 23:59:59

Returns

static

startOfMonth()

startOfMonth() : static

Resets the date to the first day of the month and the time to 00:00:00

Returns

static

endOfMonth()

endOfMonth() : static

Resets the date to end of the month and time to 23:59:59

Returns

static

startOfYear()

startOfYear() : static

Resets the date to the first day of the year and the time to 00:00:00

Returns

static

endOfYear()

endOfYear() : static

Resets the date to end of the year and time to 23:59:59

Returns

static

startOfDecade()

startOfDecade() : static

Resets the date to the first day of the decade and the time to 00:00:00

Returns

static

endOfDecade()

endOfDecade() : static

Resets the date to end of the decade and time to 23:59:59

Returns

static

startOfCentury()

startOfCentury() : static

Resets the date to the first day of the century and the time to 00:00:00

Returns

static

endOfCentury()

endOfCentury() : static

Resets the date to end of the century and time to 23:59:59

Returns

static

startOfWeek()

startOfWeek() : static

Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00

Returns

static

endOfWeek()

endOfWeek() : static

Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59

Returns

static

next()

next(integer|null  $dayOfWeek = null) : mixed

Modify to the next occurrence of a given day of the week.

If no dayOfWeek is provided, modify to the next occurrence of the current day of the week. Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer|null $dayOfWeek

The day of the week to move to.

Returns

mixed

previous()

previous(integer|null  $dayOfWeek = null) : mixed

Modify to the previous occurrence of a given day of the week.

If no dayOfWeek is provided, modify to the previous occurrence of the current day of the week. Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer|null $dayOfWeek

The day of the week to move to.

Returns

mixed

firstOfMonth()

firstOfMonth(integer|null  $dayOfWeek = null) : mixed

Modify to the first occurrence of a given day of the week in the current month. If no dayOfWeek is provided, modify to the first day of the current month. Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer|null $dayOfWeek

The day of the week to move to.

Returns

mixed

lastOfMonth()

lastOfMonth(integer|null  $dayOfWeek = null) : mixed

Modify to the last occurrence of a given day of the week in the current month. If no dayOfWeek is provided, modify to the last day of the current month. Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer|null $dayOfWeek

The day of the week to move to.

Returns

mixed

nthOfMonth()

nthOfMonth(integer  $nth, integer  $dayOfWeek) : mixed

Modify to the given occurrence of a given day of the week in the current month. If the calculated occurrence is outside the scope of the current month, then return false and no modifications are made.

Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer $nth

The offset to use.

integer $dayOfWeek

The day of the week to move to.

Returns

mixed

firstOfQuarter()

firstOfQuarter(integer|null  $dayOfWeek = null) : mixed

Modify to the first occurrence of a given day of the week in the current quarter. If no dayOfWeek is provided, modify to the first day of the current quarter. Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer|null $dayOfWeek

The day of the week to move to.

Returns

mixed

lastOfQuarter()

lastOfQuarter(integer|null  $dayOfWeek = null) : mixed

Modify to the last occurrence of a given day of the week in the current quarter. If no dayOfWeek is provided, modify to the last day of the current quarter. Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer|null $dayOfWeek

The day of the week to move to.

Returns

mixed

nthOfQuarter()

nthOfQuarter(integer  $nth, integer  $dayOfWeek) : mixed

Modify to the given occurrence of a given day of the week in the current quarter. If the calculated occurrence is outside the scope of the current quarter, then return false and no modifications are made.

Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer $nth

The offset to use.

integer $dayOfWeek

The day of the week to move to.

Returns

mixed

firstOfYear()

firstOfYear(integer|null  $dayOfWeek = null) : mixed

Modify to the first occurrence of a given day of the week in the current year. If no dayOfWeek is provided, modify to the first day of the current year. Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer|null $dayOfWeek

The day of the week to move to.

Returns

mixed

lastOfYear()

lastOfYear(integer|null  $dayOfWeek = null) : mixed

Modify to the last occurrence of a given day of the week in the current year. If no dayOfWeek is provided, modify to the last day of the current year. Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer|null $dayOfWeek

The day of the week to move to.

Returns

mixed

nthOfYear()

nthOfYear(integer  $nth, integer  $dayOfWeek) : mixed

Modify to the given occurrence of a given day of the week in the current year. If the calculated occurrence is outside the scope of the current year, then return false and no modifications are made.

Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY.

Parameters

integer $nth

The offset to use.

integer $dayOfWeek

The day of the week to move to.

Returns

mixed

average()

average(\Cake\Chronos\ChronosInterface|null  $dt = null) : static

Modify the current instance to the average of a given instance (default now) and the current instance.

Parameters

\Cake\Chronos\ChronosInterface|null $dt

The instance to compare with.

Returns

static

setTestNow()

setTestNow(\Cake\Chronos\ChronosInterface|string|null  $testNow = null) : void

Set the test now used by Date and Time classes provided by Chronos

Parameters

\Cake\Chronos\ChronosInterface|string|null $testNow

The instance to use for all future instances.

getTestNow()

getTestNow() : static|null

Get the test instance stored in Chronos

Returns

static|null —

the current instance used for testing or null.

hasTestNow()

hasTestNow() : boolean

Get whether or not Chronos has a test instance set.

Returns

boolean —

True if there is a test instance, otherwise false

__construct()

__construct(string|null  $time = 'now') 

Create a new mutable Date instance.

Please see the testing aids section (specifically static::setTestNow()) for more on the possibility of this constructor returning a test instance.

Date instances lack time components, however due to limitations in PHP's internal Datetime object the time will always be set to 00:00:00, and the timezone will always be UTC. Normalizing the timezone allows for subtraction/addition to have deterministic results.

Parameters

string|null $time

Fixed or relative time

toImmutable()

toImmutable() : \Cake\Chronos\Date

Create a new immutable instance from current mutable instance.

Returns

\Cake\Chronos\Date

__debugInfo()

__debugInfo() : array

Return properties for debugging.

Returns

array

safeCreateDateTimeZone()

safeCreateDateTimeZone(\DateTimeZone|string|null  $object) : \DateTimeZone

Creates a DateTimeZone from a string or a DateTimeZone

Parameters

\DateTimeZone|string|null $object

The value to convert.

Throws

\InvalidArgumentException

Returns

\DateTimeZone

stripTime()

stripTime(string|integer  $time) : string

Removes the time components from an input string.

Used to ensure constructed objects always lack time.

Parameters

string|integer $time

The input time. Integer values will be assumed to be in UTC. The 'now' and '' values will use the current local time.

Returns

string —

The date component of $time.

stripRelativeTime()

stripRelativeTime(string  $time) : string

Remove time components from strtotime relative strings.

Parameters

string $time

The input expression

Returns

string —

The output expression with no time modifiers.

setDateParent()

setDateParent(integer  $year, integer  $month, integer  $day) : static

Just calling to parent setDate It used in overwritten setDate

Parameters

integer $year

The year to set.

integer $month

The month to set.

integer $day

The day to set.

Returns

static