Class FrozenTime
Extends the built-in DateTime class to provide handy methods and locale-aware formatting helpers
This object provides an immutable variant of Cake\I18n\Time
Constants
- 
          
          DAYS_PER_WEEK ¶7
- 
          
          stringDEFAULT_TO_STRING_FORMAT ¶'Y-m-d H:i:s'Default format to use for __toString method when type juggling occurs. 
- 
          
          FRIDAY ¶5
- 
          
          HOURS_PER_DAY ¶24
- 
          
          MINUTES_PER_HOUR ¶60
- 
          
          MONDAY ¶1The day constants 
- 
          
          MONTHS_PER_QUARTER ¶3
- 
          
          MONTHS_PER_YEAR ¶12
- 
          
          SATURDAY ¶6
- 
          
          SECONDS_PER_MINUTE ¶60
- 
          
          SUNDAY ¶7
- 
          
          THURSDAY ¶4
- 
          
          TUESDAY ¶2
- 
          
          WEDNESDAY ¶3
- 
          
          WEEKS_PER_YEAR ¶52
- 
          
          YEARS_PER_CENTURY ¶100Number of X in Y 
- 
          
          YEARS_PER_DECADE ¶10
Property Summary
- 
        $_formatters protected staticarrayIn-memory cache of date formatters 
- 
        $_isDateInstance protected staticboolCaches whether or not this class is a subclass of a Date or MutableDate 
- 
        $_jsonEncodeFormat protected staticstring|array|intThe format to use when when converting this object to json 
- 
        $_lastErrors protected staticarrayHolds the last error generated by createFromFormat 
- 
        $_toStringFormat protected staticstring|array|intThe format to use when formatting a time using Cake\I18n\FrozenTime::i18nFormat()and__toString
- 
        $age public @property-readintdoes a diffInYears() with default parameters 
- 
        $day public @property-readint
- 
        $dayOfWeek public @property-readint1 (for Monday) through 7 (for Sunday) 
- 
        $dayOfYear public @property-readint0 through 365 
- 
        $days protected staticarrayNames of days of the week. 
- 
        $daysInMonth public @property-readintnumber of days in the given month 
- 
        $defaultLocale public static deprecatedstringThe default locale to be used for displaying formatted date strings. 
- 
        $diffFormatter protected staticCake\Chronos\DifferenceFormatterInstance of the diff formatting object. 
- 
        $dst public @property-readbooldaylight savings time indicator, true if DST, false otherwise 
- 
        $hour public @property-readint
- 
        $local public @property-readboolchecks if the timezone is local, true if local, false otherwise 
- 
        $micro public @property-readint
- 
        $minute public @property-readint
- 
        $month public @property-readint
- 
        $niceFormat public staticstring|array|intThe format to use when formatting a time using Cake\I18n\FrozenTime::nice()
- 
        $offset public @property-readintthe timezone offset in seconds from UTC 
- 
        $offsetHours public @property-readintthe timezone offset in hours from UTC 
- 
        $quarter public @property-readintthe quarter of this instance, 1 - 4 
- 
        $relativePattern protected static
- 
        $second public @property-readint
- 
        $testNow protected staticCake\Chronos\ChronosInterfaceA test ChronosInterface instance to be returned when now instances are created 
- 
        $timestamp public @property-readintseconds since the Unix Epoch 
- 
        $timezone public @property-readDateTimeZonethe current timezone 
- 
        $timezoneName public @property-readstring
- 
        $toStringFormat protected staticstringFormat to use for __toString method when type juggling occurs. 
- 
        $tz public @property-readDateTimeZonealias of timezone 
- 
        $tzName public @property-readstring
- 
        $utc public @property-readboolchecks if the timezone is UTC, true if UTC, false otherwise 
- 
        $weekEndsAt protected staticintLast day of week 
- 
        $weekOfMonth public @property-readint1 through 5 
- 
        $weekOfYear public @property-readintISO-8601 week number of year, weeks starting on Monday 
- 
        $weekStartsAt protected staticintFirst day of week 
- 
        $weekendDays protected staticarrayDays of weekend 
- 
        $wordAccuracy public staticarrayThe format to use when formatting a time using Time::timeAgoInWords()and the difference is less thanTime::$wordEnd
- 
        $wordEnd public staticstringThe end of relative time telling 
- 
        $wordFormat public staticstringThe format to use when formatting a time using Cake\I18n\FrozenTime::timeAgoInWords()and the difference is more thanCake\I18n\FrozenTime::$wordEnd
- 
        $year public @property-readint
- 
        $yearIso public @property-readint
Method Summary
- 
          __construct() publicCreate a new Chronos instance. 
- 
          __debugInfo() publicReturns the data that should be displayed when debugging this object 
- 
          __get() publicGet a part of the ChronosInterface object 
- 
          __isset() publicCheck if an attribute exists on the object 
- 
          __toString() publicFormat the instance as a string using the set format 
- 
          _formatObject() protectedReturns a translated and localized date string. Implements what IntlDateFormatter::formatObject() is in PHP 5.5+ 
- 
          addDay() publicAdd a day to the instance 
- 
          addDays() publicAdd days to the instance. Positive $value travels forward while negative $value travels into the past. 
- 
          addHour() publicAdd an hour to the instance 
- 
          addHours() publicAdd hours to the instance. Positive $value travels forward while negative $value travels into the past. 
- 
          addMinute() publicAdd a minute to the instance 
- 
          addMinutes() publicAdd minutes to the instance. Positive $value travels forward while negative $value travels into the past. 
- 
          addMonth() publicAdd a month to the instance 
- 
          addMonthWithOverflow() publicAdd a month with overflow to the instance 
- 
          addMonths() publicAdd months to the instance. Positive $value travels forward while negative $value travels into the past. 
- 
          addMonthsWithOverflow() publicAdd months with overflowing to the instance. Positive $value travels forward while negative $value travels into the past. 
- 
          addSecond() publicAdd a second to the instance 
- 
          addSeconds() publicAdd seconds to the instance. Positive $value travels forward while negative $value travels into the past. 
- 
          addWeek() publicAdd a week to the instance 
- 
          addWeekday() publicAdd a weekday to the instance 
- 
          addWeekdays() publicAdd weekdays to the instance. Positive $value travels forward while negative $value travels into the past. 
- 
          addWeeks() publicAdd weeks to the instance. Positive $value travels forward while negative $value travels into the past. 
- 
          addYear() publicAdd a year to the instance 
- 
          addYears() publicAdd years to the instance. Positive $value travel forward while negative $value travel into the past. 
- 
          average() publicModify the current instance to the average of a given instance (default now) and the current instance. 
- 
          between() publicDetermines if the instance is between two others 
- 
          closest() publicGet the closest date from the instance. 
- 
          copy() publicGet a copy of the instance 
- 
          create() public staticCreate a new ChronosInterface instance from a specific date and time. 
- 
          createFromArray() public staticCreates a ChronosInterface instance from an array of date and time values. 
- 
          createFromDate() public staticCreate a ChronosInterface instance from just a date. The time portion is set to now. 
- 
          createFromFormat() public staticCreate a ChronosInterface instance from a specific format 
- 
          createFromTime() public staticCreate a ChronosInterface instance from just a time. The date portion is set to today. 
- 
          createFromTimestamp() public staticCreate a ChronosInterface instance from a timestamp 
- 
          createFromTimestampUTC() public staticCreate a ChronosInterface instance from an UTC timestamp 
- 
          day() publicSet the instance's day 
- 
          diffFiltered() publicGet the difference by the given interval using a filter callable 
- 
          diffForHumans() publicGet the difference in a human readable format. 
- 
          diffFormatter() public staticGet the difference formatter instance or overwrite the current one. 
- 
          diffInDays() publicGet the difference in days 
- 
          diffInDaysFiltered() publicGet the difference in days using a filter callable 
- 
          diffInHours() publicGet the difference in hours 
- 
          diffInHoursFiltered() publicGet the difference in hours using a filter callable 
- 
          diffInMinutes() publicGet the difference in minutes 
- 
          diffInMonths() publicGet the difference in months 
- 
          diffInSeconds() publicGet the difference in seconds 
- 
          diffInWeekdays() publicGet the difference in weekdays 
- 
          diffInWeekendDays() publicGet the difference in weekend days using a filter 
- 
          diffInWeeks() publicGet the difference in weeks 
- 
          diffInYears() publicGet the difference in years 
- 
          endOfCentury() publicResets the date to end of the century and time to 23:59:59 
- 
          endOfDay() publicResets the time to 23:59:59 
- 
          endOfDecade() publicResets the date to end of the decade and time to 23:59:59 
- 
          endOfMonth() publicResets the date to end of the month and time to 23:59:59 
- 
          endOfWeek() publicResets the date to end of week (defined in $weekEndsAt) and time to 23:59:59 
- 
          endOfYear() publicResets the date to end of the year and time to 23:59:59 
- 
          eq() publicDetermines if the instance is equal to another 
- 
          equals() publicDetermines if the instance is equal to another 
- 
          farthest() publicGet the farthest date from the instance. 
- 
          firstOfMonth() publicModify 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. 
- 
          firstOfQuarter() publicModify 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. 
- 
          firstOfYear() publicModify 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. 
- 
          fromNow() public staticConvenience method for getting the remaining time from a given time. 
- 
          getDefaultLocale() public staticGets the default locale. 
- 
          getLastErrors() public staticReturns any errors or warnings that were found during the parsing of the last object created by this class. 
- 
          getTestNow() public staticGet the ChronosInterface instance (real or mock) to be returned when a "now" instance is created. 
- 
          getWeekEndsAt() public staticGet the last day of week 
- 
          getWeekStartsAt() public staticGet the first day of week 
- 
          getWeekendDays() public staticGet weekend days 
- 
          greaterThan() publicDetermines if the instance is greater (after) than another 
- 
          greaterThanOrEquals() publicDetermines if the instance is greater (after) than or equal to another 
- 
          gt() publicDetermines if the instance is greater (after) than another 
- 
          gte() publicDetermines if the instance is greater (after) than or equal to another 
- 
          hasRelativeKeywords() public staticDetermine if there is a relative keyword in the time string, this is to create dates relative to now for test instances. e.g.: next tuesday 
- 
          hasTestNow() public staticDetermine if there is a valid test instance set. A valid test instance is anything that is not null. 
- 
          hour() publicSet the instance's hour 
- 
          i18nFormat() publicReturns a formatted string for this time object using the preferred format and language for the specified locale. 
- 
          instance() public staticCreate a ChronosInterface instance from a DateTimeInterface one 
- 
          isBirthday() publicCheck if its the birthday. Compares the date/month values of the two dates. 
- 
          isFriday() publicChecks if this day is a Friday. 
- 
          isFuture() publicDetermines if the instance is in the future, ie. greater (after) than now 
- 
          isLastMonth() publicDetermines if the instance is within the last month 
- 
          isLastWeek() publicDetermines if the instance is within the last week 
- 
          isLastYear() publicDetermines if the instance is within the last year 
- 
          isLeapYear() publicDetermines if the instance is a leap year 
- 
          isMonday() publicChecks if this day is a Monday. 
- 
          isMutable() publicCheck if instance of ChronosInterface is mutable. 
- 
          isNextMonth() publicDetermines if the instance is within the next month 
- 
          isNextWeek() publicDetermines if the instance is within the next week 
- 
          isNextYear() publicDetermines if the instance is within the next year 
- 
          isPast() publicDetermines if the instance is in the past, ie. less (before) than now 
- 
          isSameDay() publicChecks if the passed in date is the same day as the instance current day. 
- 
          isSaturday() publicChecks if this day is a Saturday. 
- 
          isSunday() publicChecks if this day is a Sunday. 
- 
          isThisMonth() publicReturns true if this object represents a date within the current month 
- 
          isThisWeek() publicReturns true if this object represents a date within the current week 
- 
          isThisYear() publicReturns true if this object represents a date within the current year 
- 
          isThursday() publicChecks if this day is a Thursday. 
- 
          isToday() publicDetermines if the instance is today 
- 
          isTomorrow() publicDetermines if the instance is tomorrow 
- 
          isTuesday() publicChecks if this day is a Tuesday. 
- 
          isWednesday() publicChecks if this day is a Wednesday. 
- 
          isWeekday() publicDetermines if the instance is a weekday 
- 
          isWeekend() publicDetermines if the instance is a weekend day 
- 
          isWithinNext() publicReturns true this instance happened within the specified interval 
- 
          isYesterday() publicDetermines if the instance is yesterday 
- 
          jsonSerialize() publicReturns a string that should be serialized when converting this object to json 
- 
          lastOfMonth() publicModify 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. 
- 
          lastOfQuarter() publicModify 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. 
- 
          lastOfYear() publicModify 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. 
- 
          lessThan() publicDetermines if the instance is less (before) than another 
- 
          lessThanOrEquals() publicDetermines if the instance is less (before) or equal to another 
- 
          listTimezones() public staticGet list of timezone identifiers 
- 
          lt() publicDetermines if the instance is less (before) than another 
- 
          lte() publicDetermines if the instance is less (before) or equal to another 
- 
          max() publicGet the maximum instance between a given instance (default now) and the current instance. 
- 
          maxValue() public staticCreate a ChronosInterface instance for the greatest supported date. 
- 
          min() publicGet the minimum instance between a given instance (default now) and the current instance. 
- 
          minValue() public staticCreate a ChronosInterface instance for the lowest supported date. 
- 
          minute() publicSet the instance's minute 
- 
          modify() public @method
- 
          month() publicSet the instance's month 
- 
          ne() publicDetermines if the instance is not equal to another 
- 
          next() publicModify 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. 
- 
          nice() publicReturns a nicely formatted date string for this object. 
- 
          notEquals() publicDetermines if the instance is not equal to another 
- 
          now() public staticGet a ChronosInterface instance for the current date and time 
- 
          nthOfMonth() publicModify 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. 
- 
          nthOfQuarter() publicModify 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. 
- 
          nthOfYear() publicModify 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. 
- 
          parse() public staticCreate 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() 
- 
          parseDate() public staticReturns a new Time object after parsing the provided $date string based on the passed or configured date time format. This method is locale dependent, Any string that is passed to this function will be interpreted as a locale dependent string. 
- 
          parseDateTime() public staticReturns a new Time object after parsing the provided time string based on the passed or configured date time format. This method is locale dependent, Any string that is passed to this function will be interpreted as a locale dependent string. 
- 
          parseTime() public staticReturns a new Time object after parsing the provided $time string based on the passed or configured date time format. This method is locale dependent, Any string that is passed to this function will be interpreted as a locale dependent string. 
- 
          previous() publicModify 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. 
- 
          resetToStringFormat() public staticResets the format used to the default when converting an instance of this type to a string 
- 
          safeCreateDateTimeZone() protected staticCreates a DateTimeZone from a string or a DateTimeZone 
- 
          second() publicSet the instance's second 
- 
          secondsSinceMidnight() publicThe number of seconds since midnight. 
- 
          secondsUntilEndOfDay() publicThe number of seconds until 23:59:59. 
- 
          setDate() publicSet the date to a different date. 
- 
          setDateTime() publicSet the date and time all together 
- 
          setDefaultLocale() public staticSets the default locale. 
- 
          setJsonEncodeFormat() public staticSets the default format used when converting this object to json 
- 
          setTestNow() public staticSet a ChronosInterface instance (real or mock) to be returned when a "now" instance is created. The provided instance will be returned specifically under the following conditions: - A call to the static now() method, ex. ChronosInterface::now()
- When a null (or blank string) is passed to the constructor or parse(), ex. new Chronos(null)
- When the string "now" is passed to the constructor or parse(), ex. new Chronos('now')
- When a string containing the desired time is passed to ChronosInterface::parse()
 
- 
          setTimeFromTimeString() publicSet the time by time string 
- 
          setTimezone() publicSet the instance's timezone from a string or object 
- 
          setToStringFormat() public staticSets the default format used when type converting instances of this type to string 
- 
          setWeekEndsAt() public staticSet the last day of week 
- 
          setWeekStartsAt() public staticSet the first day of week 
- 
          setWeekendDays() public staticSet weekend days 
- 
          startOfCentury() publicResets the date to the first day of the century and the time to 00:00:00 
- 
          startOfDay() publicResets the time to 00:00:00 
- 
          startOfDecade() publicResets the date to the first day of the decade and the time to 00:00:00 
- 
          startOfMonth() publicResets the date to the first day of the month and the time to 00:00:00 
- 
          startOfWeek() publicResets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00 
- 
          startOfYear() publicResets the date to the first day of the year and the time to 00:00:00 
- 
          subDay() publicRemove a day from the instance 
- 
          subDays() publicRemove days from the instance 
- 
          subHour() publicRemove an hour from the instance 
- 
          subHours() publicRemove hours from the instance 
- 
          subMinute() publicRemove a minute from the instance 
- 
          subMinutes() publicRemove minutes from the instance 
- 
          subMonth() publicRemove a month from the instance 
- 
          subMonthWithOverflow() publicRemove a month with overflow from the instance 
- 
          subMonths() publicRemove months from the instance 
- 
          subMonthsWithOverflow() publicRemove months with overflow from the instance 
- 
          subSecond() publicRemove a second from the instance 
- 
          subSeconds() publicRemove seconds from the instance 
- 
          subWeek() publicRemove a week from the instance 
- 
          subWeekday() publicRemove a weekday from the instance 
- 
          subWeekdays() publicRemove weekdays from the instance 
- 
          subWeeks() publicRemove weeks to the instance 
- 
          subYear() publicRemove a year from the instance 
- 
          subYears() publicRemove years from the instance. 
- 
          timeAgoInWords() publicReturns either a relative or a formatted absolute date depending on the difference between the current time and this object. 
- 
          timestamp() publicSet the instance's timestamp 
- 
          timezone() publicAlias for setTimezone() 
- 
          toAtomString() publicFormat the instance as ATOM 
- 
          toCookieString() publicFormat the instance as COOKIE 
- 
          toDateString() publicFormat the instance as date 
- 
          toDateTimeString() publicFormat the instance as date and time 
- 
          toDayDateTimeString() publicFormat the instance with day, date and time 
- 
          toFormattedDateString() publicFormat the instance as a readable date 
- 
          toIso8601String() publicFormat the instance as ISO8601 
- 
          toMutable() publicCreate a new mutable instance from current immutable instance. 
- 
          toQuarter() publicReturns the quarter 
- 
          toRfc1036String() publicFormat the instance as RFC1036 
- 
          toRfc1123String() publicFormat the instance as RFC1123 
- 
          toRfc2822String() publicFormat the instance as RFC2822 
- 
          toRfc3339String() publicFormat the instance as RFC3339 
- 
          toRfc822String() publicFormat the instance as RFC822 
- 
          toRfc850String() publicFormat the instance as RFC850 
- 
          toRssString() publicFormat the instance as RSS 
- 
          toTimeString() publicFormat the instance as time 
- 
          toUnixString() publicReturns a UNIX timestamp. 
- 
          toW3cString() publicFormat the instance as W3C 
- 
          toWeek() public
- 
          today() public staticCreate a ChronosInterface instance for today 
- 
          tomorrow() public staticCreate a ChronosInterface instance for tomorrow 
- 
          tz() publicAlias for setTimezone() 
- 
          wasWithinLast() publicReturns true this instance will happen within the specified interval 
- 
          year() publicSet the instance's year 
- 
          yesterday() public staticCreate a ChronosInterface instance for yesterday 
Method Detail
__construct() ¶ public
__construct(string|null $time = null, DateTimeZone|string|null $tz = null)Create a new Chronos instance.
Please see the testing aids section (specifically static::setTestNow()) for more on the possibility of this constructor returning a test instance.
Parameters
- 
                string|null$time optional
- 
                DateTimeZone|string|null$tz optional
__debugInfo() ¶ public
__debugInfo(): arrayReturns the data that should be displayed when debugging this object
Returns
array__get() ¶ public
__get(string $name): mixedGet a part of the ChronosInterface object
Parameters
- 
                string$name
- The property name to read. 
Returns
mixedThe property value.
Throws
InvalidArgumentException__isset() ¶ public
__isset(string $name): boolCheck if an attribute exists on the object
Parameters
- 
                string$name
- The property name to check. 
Returns
boolWhether or not the property exists.
__toString() ¶ public
__toString(): stringFormat the instance as a string using the set format
Returns
string_formatObject() ¶ protected
_formatObject(DateTime $date, string|int|array $format, string $locale): stringReturns a translated and localized date string. Implements what IntlDateFormatter::formatObject() is in PHP 5.5+
Parameters
- 
                DateTime$date
- Date. 
- 
                string|int|array$format
- Format. 
- 
                string$locale
- The locale name in which the date should be displayed. 
Returns
stringaddDay() ¶ public
addDay(int $value = 1): staticAdd a day to the instance
Parameters
- 
                int$value optional
- The number of days to add. 
Returns
staticaddDays() ¶ public
addDays(int $value): staticAdd days to the instance. Positive $value travels forward while negative $value travels into the past.
Parameters
- 
                int$value
- The number of days to add. 
Returns
staticaddHour() ¶ public
addHour(int $value = 1): staticAdd an hour to the instance
Parameters
- 
                int$value optional
- The number of hours to add. 
Returns
staticaddHours() ¶ public
addHours(int $value): staticAdd hours to the instance. Positive $value travels forward while negative $value travels into the past.
Parameters
- 
                int$value
- The number of hours to add. 
Returns
staticaddMinute() ¶ public
addMinute(int $value = 1): staticAdd a minute to the instance
Parameters
- 
                int$value optional
- The number of minutes to add. 
Returns
staticaddMinutes() ¶ public
addMinutes(int $value): staticAdd minutes to the instance. Positive $value travels forward while negative $value travels into the past.
Parameters
- 
                int$value
- The number of minutes to add. 
Returns
staticaddMonth() ¶ public
addMonth(int $value = 1): staticAdd 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-28Parameters
- 
                int$value optional
- The number of months to add. 
Returns
staticaddMonthWithOverflow() ¶ public
addMonthWithOverflow(int $value = 1): staticAdd a month with overflow to the instance
Parameters
- 
                int$value optional
- The number of months to add. 
Returns
staticaddMonths() ¶ public
addMonths(int $value): staticAdd 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-28Parameters
- 
                int$value
- The number of months to add. 
Returns
staticaddMonthsWithOverflow() ¶ public
addMonthsWithOverflow(int $value): staticAdd months with overflowing to the instance. Positive $value travels forward while negative $value travels into the past.
Parameters
- 
                int$value
- The number of months to add. 
Returns
staticaddSecond() ¶ public
addSecond(int $value = 1): staticAdd a second to the instance
Parameters
- 
                int$value optional
- The number of seconds to add. 
Returns
staticaddSeconds() ¶ public
addSeconds(int $value): staticAdd seconds to the instance. Positive $value travels forward while negative $value travels into the past.
Parameters
- 
                int$value
- The number of seconds to add. 
Returns
staticaddWeek() ¶ public
addWeek(int $value = 1): staticAdd a week to the instance
Parameters
- 
                int$value optional
- The number of weeks to add. 
Returns
staticaddWeekday() ¶ public
addWeekday(int $value = 1): staticAdd a weekday to the instance
Parameters
- 
                int$value optional
- The number of weekdays to add. 
Returns
staticaddWeekdays() ¶ public
addWeekdays(int $value): staticAdd weekdays to the instance. Positive $value travels forward while negative $value travels into the past.
Parameters
- 
                int$value
- The number of weekdays to add. 
Returns
staticaddWeeks() ¶ public
addWeeks(int $value): staticAdd weeks to the instance. Positive $value travels forward while negative $value travels into the past.
Parameters
- 
                int$value
- The number of weeks to add. 
Returns
staticaddYear() ¶ public
addYear(int $value = 1): staticAdd a year to the instance
Parameters
- 
                int$value optional
- The number of years to add. 
Returns
staticaddYears() ¶ public
addYears(int $value): staticAdd years to the instance. Positive $value travel forward while negative $value travel into the past.
Parameters
- 
                int$value
- The number of years to add. 
Returns
staticaverage() ¶ public
average(Cake\Chronos\ChronosInterface $dt = null): staticModify the current instance to the average of a given instance (default now) and the current instance.
Parameters
- 
                Cake\Chronos\ChronosInterface$dt optional
- The instance to compare with. 
Returns
staticbetween() ¶ public
between(Cake\Chronos\ChronosInterface $dt1, Cake\Chronos\ChronosInterface $dt2, bool $equal = true): boolDetermines 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. 
- 
                bool$equal optional
- Indicates if a > and < comparison should be used or <= or >= 
Returns
boolclosest() ¶ public
closest(Cake\Chronos\ChronosInterface $dt1, Cake\Chronos\ChronosInterface $dt2): Cake\Chronos\ChronosInterfaceGet the closest date from the instance.
Parameters
- 
                Cake\Chronos\ChronosInterface$dt1
- The instance to compare with. 
- 
                Cake\Chronos\ChronosInterface$dt2
- The instance to compare with. 
Returns
Cake\Chronos\ChronosInterfacecreate() ¶ public static
create(int|null $year = null, int|null $month = null, int|null $day = null, int|null $hour = null, int|null $minute = null, int|null $second = null, DateTimeZone|string|null $tz = null): staticCreate 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
- 
                int|null$year optional
- The year to create an instance with. 
- 
                int|null$month optional
- The month to create an instance with. 
- 
                int|null$day optional
- The day to create an instance with. 
- 
                int|null$hour optional
- The hour to create an instance with. 
- 
                int|null$minute optional
- The minute to create an instance with. 
- 
                int|null$second optional
- The second to create an instance with. 
- 
                DateTimeZone|string|null$tz optional
- The DateTimeZone object or timezone name the new instance should use. 
Returns
staticcreateFromArray() ¶ public static
createFromArray((int|string)[] $values): staticCreates a ChronosInterface instance from an array of date and time values.
The 'year', 'month' and 'day' values must all be set for a date. The time values all default to 0.
The 'timezone' value can be any format supported by \DateTimeZone.
Allowed values:
- year
- month
- day
- hour
- minute
- second
- microsecond
- meridian ('am' or 'pm')
- timezone
Parameters
- 
                (int|string)[]$values
- Array of date and time values. 
Returns
staticcreateFromDate() ¶ public static
createFromDate(int $year = null, int $month = null, int $day = null, DateTimeZone|string|null $tz = null): staticCreate a ChronosInterface instance from just a date. The time portion is set to now.
Parameters
- 
                int$year optional
- The year to create an instance with. 
- 
                int$month optional
- The month to create an instance with. 
- 
                int$day optional
- The day to create an instance with. 
- 
                DateTimeZone|string|null$tz optional
- The DateTimeZone object or timezone name the new instance should use. 
Returns
staticcreateFromFormat() ¶ public static
createFromFormat(string $format, string $time, DateTimeZone|string|null $tz = null): staticCreate 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 optional
- The DateTimeZone object or timezone name the new instance should use. 
Returns
staticThrows
InvalidArgumentExceptioncreateFromTime() ¶ public static
createFromTime(int|null $hour = null, int|null $minute = null, int|null $second = null, DateTimeZone|string|null $tz = null): staticCreate a ChronosInterface instance from just a time. The date portion is set to today.
Parameters
- 
                int|null$hour optional
- The hour to create an instance with. 
- 
                int|null$minute optional
- The minute to create an instance with. 
- 
                int|null$second optional
- The second to create an instance with. 
- 
                DateTimeZone|string|null$tz optional
- The DateTimeZone object or timezone name the new instance should use. 
Returns
staticcreateFromTimestamp() ¶ public static
createFromTimestamp(int $timestamp, DateTimeZone|string|null $tz = null): staticCreate a ChronosInterface instance from a timestamp
Parameters
- 
                int$timestamp
- The timestamp to create an instance from. 
- 
                DateTimeZone|string|null$tz optional
- The DateTimeZone object or timezone name the new instance should use. 
Returns
staticcreateFromTimestampUTC() ¶ public static
createFromTimestampUTC(int $timestamp): staticCreate a ChronosInterface instance from an UTC timestamp
Parameters
- 
                int$timestamp
- The UTC timestamp to create an instance from. 
Returns
staticday() ¶ public
day(int $value): staticSet the instance's day
Parameters
- 
                int$value
- The day value. 
Returns
staticdiffFiltered() ¶ public
diffFiltered(Cake\Chronos\ChronosInterval $ci, callable $callback, Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet 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 optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffForHumans() ¶ public
diffForHumans(Cake\Chronos\ChronosInterface|null $other = null, bool $absolute = false): stringGet 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 optional
- The datetime to compare with. 
- 
                bool$absolute optional
- removes time difference modifiers ago, after, etc 
Returns
stringdiffFormatter() ¶ public static
diffFormatter(Cake\Chronos\DifferenceFormatter|null $formatter = null): Cake\I18n\RelativeTimeFormatterGet the difference formatter instance or overwrite the current one.
Parameters
- 
                Cake\Chronos\DifferenceFormatter|null$formatter optional
- The formatter instance when setting. 
Returns
Cake\I18n\RelativeTimeFormatterThe formatter instance.
diffInDays() ¶ public
diffInDays(Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in days
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInDaysFiltered() ¶ public
diffInDaysFiltered(callable $callback, Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in days using a filter callable
Parameters
- 
                callable$callback
- The callback to use for filtering. 
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInHours() ¶ public
diffInHours(Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in hours
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInHoursFiltered() ¶ public
diffInHoursFiltered(callable $callback, Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in hours using a filter callable
Parameters
- 
                callable$callback
- The callback to use for filtering. 
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInMinutes() ¶ public
diffInMinutes(Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in minutes
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInMonths() ¶ public
diffInMonths(Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in months
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInSeconds() ¶ public
diffInSeconds(Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in seconds
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInWeekdays() ¶ public
diffInWeekdays(Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in weekdays
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInWeekendDays() ¶ public
diffInWeekendDays(Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in weekend days using a filter
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInWeeks() ¶ public
diffInWeeks(Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in weeks
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intdiffInYears() ¶ public
diffInYears(Cake\Chronos\ChronosInterface|null $dt = null, bool $abs = true): intGet the difference in years
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to difference from. 
- 
                bool$abs optional
- Get the absolute of the difference 
Returns
intendOfCentury() ¶ public
endOfCentury(): staticResets the date to end of the century and time to 23:59:59
Returns
staticendOfDecade() ¶ public
endOfDecade(): staticResets the date to end of the decade and time to 23:59:59
Returns
staticendOfMonth() ¶ public
endOfMonth(): staticResets the date to end of the month and time to 23:59:59
Returns
staticendOfWeek() ¶ public
endOfWeek(): staticResets the date to end of week (defined in $weekEndsAt) and time to 23:59:59
Returns
staticendOfYear() ¶ public
endOfYear(): staticResets the date to end of the year and time to 23:59:59
Returns
staticeq() ¶ public
eq(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is equal to another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boolequals() ¶ public
equals(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is equal to another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boolfarthest() ¶ public
farthest(Cake\Chronos\ChronosInterface $dt1, Cake\Chronos\ChronosInterface $dt2): Cake\Chronos\ChronosInterfaceGet the farthest date from the instance.
Parameters
- 
                Cake\Chronos\ChronosInterface$dt1
- The instance to compare with. 
- 
                Cake\Chronos\ChronosInterface$dt2
- The instance to compare with. 
Returns
Cake\Chronos\ChronosInterfacefirstOfMonth() ¶ public
firstOfMonth(int $dayOfWeek = null): mixedModify 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
- 
                int$dayOfWeek optional
- The day of the week to move to. 
Returns
mixedfirstOfQuarter() ¶ public
firstOfQuarter(int $dayOfWeek = null): mixedModify 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
- 
                int$dayOfWeek optional
- The day of the week to move to. 
Returns
mixedfirstOfYear() ¶ public
firstOfYear(int $dayOfWeek = null): mixedModify 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
- 
                int$dayOfWeek optional
- The day of the week to move to. 
Returns
mixedfromNow() ¶ public static
fromNow(DateTime|DateTimeImmutable $datetime): DateInterval|boolConvenience method for getting the remaining time from a given time.
Parameters
- 
                DateTime|DateTimeImmutable$datetime
- The date to get the remaining time from. 
Returns
DateInterval|boolThe DateInterval object representing the difference between the two dates or FALSE on failure.
getDefaultLocale() ¶ public static
getDefaultLocale(): string|nullGets the default locale.
Returns
string|nullThe default locale string to be used or null.
getLastErrors() ¶ public static
getLastErrors(): arrayReturns any errors or warnings that were found during the parsing of the last object created by this class.
Returns
arraygetTestNow() ¶ public static
getTestNow(): Cake\Chronos\ChronosInterfaceGet the ChronosInterface instance (real or mock) to be returned when a "now" instance is created.
Returns
Cake\Chronos\ChronosInterfaceThe current instance used for testing
greaterThan() ¶ public
greaterThan(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is greater (after) than another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boolgreaterThanOrEquals() ¶ public
greaterThanOrEquals(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is greater (after) than or equal to another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boolgt() ¶ public
gt(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is greater (after) than another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boolgte() ¶ public
gte(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is greater (after) than or equal to another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boolhasRelativeKeywords() ¶ public static
hasRelativeKeywords(string $time): boolDetermine if there is a relative keyword in the time string, this is to create dates relative to now for test instances. e.g.: next tuesday
Parameters
- 
                string$time
- The time string to check. 
Returns
booltrue if there is a keyword, otherwise false
hasTestNow() ¶ public static
hasTestNow(): boolDetermine if there is a valid test instance set. A valid test instance is anything that is not null.
Returns
boolTrue if there is a test instance, otherwise false
hour() ¶ public
hour(int $value): staticSet the instance's hour
Parameters
- 
                int$value
- The hour value. 
Returns
statici18nFormat() ¶ public
i18nFormat(string|int|null $format = null, string|DateTimeZone|null $timezone = null, string|null $locale = null): stringReturns a formatted string for this time object using the preferred format and language for the specified locale.
It is possible to specify the desired format for the string to be displayed.
You can either pass IntlDateFormatter constants as the first argument of this
function, or pass a full ICU date formatting string as specified in the following
resource: http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details.
Examples
$time = new Time('2014-04-20 22:10');
$time->i18nFormat(); // outputs '4/20/14, 10:10 PM' for the en-US locale
$time->i18nFormat(\IntlDateFormatter::FULL); // Use the full date and time format
$time->i18nFormat([\IntlDateFormatter::FULL, \IntlDateFormatter::SHORT]); // Use full date but short time format
$time->i18nFormat('yyyy-MM-dd HH:mm:ss'); // outputs '2014-04-20 22:10'If you wish to control the default format to be used for this method, you can alter
the value of the static Time::$defaultLocale variable and set it to one of the
possible formats accepted by this function.
You can read about the available IntlDateFormatter constants at http://www.php.net/manual/en/class.intldateformatter.php
If you need to display the date in a different timezone than the one being used for this Time object without altering its internal state, you can pass a timezone string or object as the second parameter.
Finally, should you need to use a different locale for displaying this time object, pass a locale string as the third parameter to this function.
Examples
$time = new Time('2014-04-20 22:10');
$time->i18nFormat(null, null, 'de-DE');
$time->i18nFormat(\IntlDateFormatter::FULL, 'Europe/Berlin', 'de-DE');You can control the default locale to be used by setting the static variable
Time::$defaultLocale to a  valid locale string. If empty, the default will be
taken from the intl.default_locale ini config.
Parameters
- 
                string|int|null$format optional
- Format string. 
- 
                string|DateTimeZone|null$timezone optional
- Timezone string or DateTimeZone object in which the date will be displayed. The timezone stored for this object will not be changed. 
- 
                string|null$locale optional
- The locale name in which the date should be displayed (e.g. pt-BR) 
Returns
stringFormatted and translated date string
instance() ¶ public static
instance(DateTimeInterface $dt): staticCreate a ChronosInterface instance from a DateTimeInterface one
Parameters
- 
                DateTimeInterface$dt
- The datetime instance to convert. 
Returns
staticisBirthday() ¶ public
isBirthday(Cake\Chronos\ChronosInterface $dt = null): boolCheck if its the birthday. Compares the date/month values of the two dates.
Parameters
- 
                Cake\Chronos\ChronosInterface$dt optional
- The instance to compare with or null to use current day. 
Returns
boolisFuture() ¶ public
isFuture(): boolDetermines if the instance is in the future, ie. greater (after) than now
Returns
boolisLastMonth() ¶ public
isLastMonth(): boolDetermines if the instance is within the last month
Returns
boolisLastWeek() ¶ public
isLastWeek(): boolDetermines if the instance is within the last week
Returns
boolisLastYear() ¶ public
isLastYear(): boolDetermines if the instance is within the last year
Returns
boolisMutable() ¶ public
isMutable(): boolCheck if instance of ChronosInterface is mutable.
Returns
boolisNextMonth() ¶ public
isNextMonth(): boolDetermines if the instance is within the next month
Returns
boolisNextWeek() ¶ public
isNextWeek(): boolDetermines if the instance is within the next week
Returns
boolisNextYear() ¶ public
isNextYear(): boolDetermines if the instance is within the next year
Returns
boolisPast() ¶ public
isPast(): boolDetermines if the instance is in the past, ie. less (before) than now
Returns
boolisSameDay() ¶ public
isSameDay(Cake\Chronos\ChronosInterface $dt): boolChecks 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
boolisThisMonth() ¶ public
isThisMonth(): boolReturns true if this object represents a date within the current month
Returns
boolisThisWeek() ¶ public
isThisWeek(): boolReturns true if this object represents a date within the current week
Returns
boolisThisYear() ¶ public
isThisYear(): boolReturns true if this object represents a date within the current year
Returns
boolisWithinNext() ¶ public
isWithinNext(string|int $timeInterval): boolReturns true this instance happened within the specified interval
This overridden method provides backwards compatible behavior for integers, or strings with trailing spaces. This behavior is deprecated and will be removed in future versions of CakePHP.
Parameters
- 
                string|int$timeInterval
- the numeric value with space then time type. Example of valid types: 6 hours, 2 days, 1 minute. 
Returns
booljsonSerialize() ¶ public
jsonSerialize(): stringReturns a string that should be serialized when converting this object to json
Returns
stringlastOfMonth() ¶ public
lastOfMonth(int $dayOfWeek = null): mixedModify 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
- 
                int$dayOfWeek optional
- The day of the week to move to. 
Returns
mixedlastOfQuarter() ¶ public
lastOfQuarter(int $dayOfWeek = null): mixedModify 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
- 
                int$dayOfWeek optional
- The day of the week to move to. 
Returns
mixedlastOfYear() ¶ public
lastOfYear(int $dayOfWeek = null): mixedModify 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
- 
                int$dayOfWeek optional
- The day of the week to move to. 
Returns
mixedlessThan() ¶ public
lessThan(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is less (before) than another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boollessThanOrEquals() ¶ public
lessThanOrEquals(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is less (before) or equal to another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boollistTimezones() ¶ public static
listTimezones(int|string|null $filter = null, string|null $country = null, bool|array $options = []): arrayGet list of timezone identifiers
Parameters
- 
                int|string|null$filter optional
- A regex to filter identifier Or one of DateTimeZone class constants 
- 
                string|null$country optional
- A two-letter ISO 3166-1 compatible country code. This option is only used when $filter is set to DateTimeZone::PER_COUNTRY 
- 
                bool|array$options optional
- If true (default value) groups the identifiers list by primary region. Otherwise, an array containing - group,- abbr,- before, and- afterkeys. Setting- groupand- abbrto true will group results and append timezone abbreviation in the display value. Set- beforeand- afterto customize the abbreviation wrapper.
Returns
arrayList of timezone identifiers
lt() ¶ public
lt(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is less (before) than another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boollte() ¶ public
lte(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is less (before) or equal to another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boolmax() ¶ public
max(Cake\Chronos\ChronosInterface|null $dt = null): Cake\Chronos\ChronosInterfaceGet the maximum instance between a given instance (default now) and the current instance.
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to compare with. 
Returns
Cake\Chronos\ChronosInterfacemaxValue() ¶ public static
maxValue(): Cake\Chronos\ChronosInterfaceCreate a ChronosInterface instance for the greatest supported date.
Returns
Cake\Chronos\ChronosInterfacemin() ¶ public
min(Cake\Chronos\ChronosInterface|null $dt = null): Cake\Chronos\ChronosInterfaceGet the minimum instance between a given instance (default now) and the current instance.
Parameters
- 
                Cake\Chronos\ChronosInterface|null$dt optional
- The instance to compare with. 
Returns
Cake\Chronos\ChronosInterfaceminValue() ¶ public static
minValue(): Cake\Chronos\ChronosInterfaceCreate a ChronosInterface instance for the lowest supported date.
Returns
Cake\Chronos\ChronosInterfaceminute() ¶ public
minute(int $value): staticSet the instance's minute
Parameters
- 
                int$value
- The minute value. 
Returns
staticmodify() ¶ public @method
modify(string $relative): staticParameters
- 
                string$relative
Returns
staticmonth() ¶ public
month(int $value): staticSet the instance's month
Parameters
- 
                int$value
- The month value. 
Returns
staticne() ¶ public
ne(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is not equal to another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boolnext() ¶ public
next(int $dayOfWeek = null): mixedModify 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
- 
                int$dayOfWeek optional
- The day of the week to move to. 
Returns
mixednice() ¶ public
nice(string|DateTimeZone|null $timezone = null, string|null $locale = null): stringReturns a nicely formatted date string for this object.
The format to be used is stored in the static property Time::niceFormat.
Parameters
- 
                string|DateTimeZone|null$timezone optional
- Timezone string or DateTimeZone object in which the date will be displayed. The timezone stored for this object will not be changed. 
- 
                string|null$locale optional
- The locale name in which the date should be displayed (e.g. pt-BR) 
Returns
stringFormatted date string
notEquals() ¶ public
notEquals(Cake\Chronos\ChronosInterface $dt): boolDetermines if the instance is not equal to another
Parameters
- 
                Cake\Chronos\ChronosInterface$dt
- The instance to compare with. 
Returns
boolnow() ¶ public static
now(DateTimeZone|string|null $tz = null): staticGet a ChronosInterface instance for the current date and time
Parameters
- 
                DateTimeZone|string|null$tz optional
- The DateTimeZone object or timezone name. 
Returns
staticnthOfMonth() ¶ public
nthOfMonth(int $nth, int $dayOfWeek): mixedModify 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
- 
                int$nth
- The offset to use. 
- 
                int$dayOfWeek
- The day of the week to move to. 
Returns
mixednthOfQuarter() ¶ public
nthOfQuarter(int $nth, int $dayOfWeek): mixedModify 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
- 
                int$nth
- The offset to use. 
- 
                int$dayOfWeek
- The day of the week to move to. 
Returns
mixednthOfYear() ¶ public
nthOfYear(int $nth, int $dayOfWeek): mixedModify 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
- 
                int$nth
- The offset to use. 
- 
                int$dayOfWeek
- The day of the week to move to. 
Returns
mixedparse() ¶ public static
parse(DateTimeInterface|string $time = 'now', DateTimeZone|string|null $tz = null): staticCreate 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
- 
                DateTimeInterface|string$time optional
- The strtotime compatible string to parse 
- 
                DateTimeZone|string|null$tz optional
- The DateTimeZone object or timezone name. 
Returns
staticparseDate() ¶ public static
parseDate(string $date, string|int|null $format = null): static|nullReturns a new Time object after parsing the provided $date string based on the passed or configured date time format. This method is locale dependent, Any string that is passed to this function will be interpreted as a locale dependent string.
When no $format is provided, the wordFormat format will be used.
If it was impossible to parse the provided time, null will be returned.
Example:
 $time = Time::parseDate('10/13/2013');
 $time = Time::parseDate('13 Oct, 2013', 'dd MMM, y');
 $time = Time::parseDate('13 Oct, 2013', IntlDateFormatter::SHORT);Parameters
- 
                string$date
- The date string to parse. 
- 
                string|int|null$format optional
- Any format accepted by IntlDateFormatter. 
Returns
static|nullparseDateTime() ¶ public static
parseDateTime(string $time, string|array|null $format = null): static|nullReturns a new Time object after parsing the provided time string based on the passed or configured date time format. This method is locale dependent, Any string that is passed to this function will be interpreted as a locale dependent string.
When no $format is provided, the toString format will be used.
If it was impossible to parse the provided time, null will be returned.
Example:
 $time = Time::parseDateTime('10/13/2013 12:54am');
 $time = Time::parseDateTime('13 Oct, 2013 13:54', 'dd MMM, y H:mm');
 $time = Time::parseDateTime('10/10/2015', [IntlDateFormatter::SHORT, -1]);Parameters
- 
                string$time
- The time string to parse. 
- 
                string|array|null$format optional
- Any format accepted by IntlDateFormatter. 
Returns
static|nullparseTime() ¶ public static
parseTime(string $time, string|int|null $format = null): static|nullReturns a new Time object after parsing the provided $time string based on the passed or configured date time format. This method is locale dependent, Any string that is passed to this function will be interpreted as a locale dependent string.
When no $format is provided, the IntlDateFormatter::SHORT format will be used.
If it was impossible to parse the provided time, null will be returned.
Example:
 $time = Time::parseTime('11:23pm');Parameters
- 
                string$time
- The time string to parse. 
- 
                string|int|null$format optional
- Any format accepted by IntlDateFormatter. 
Returns
static|nullprevious() ¶ public
previous(int $dayOfWeek = null): mixedModify 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
- 
                int$dayOfWeek optional
- The day of the week to move to. 
Returns
mixedresetToStringFormat() ¶ public static
resetToStringFormat(): voidResets the format used to the default when converting an instance of this type to a string
Returns
voidsafeCreateDateTimeZone() ¶ protected static
safeCreateDateTimeZone(DateTimeZone|string|null $object): DateTimeZoneCreates a DateTimeZone from a string or a DateTimeZone
Parameters
- 
                DateTimeZone|string|null$object
- The value to convert. 
Returns
DateTimeZoneThrows
InvalidArgumentExceptionsecond() ¶ public
second(int $value): staticSet the instance's second
Parameters
- 
                int$value
- The seconds value. 
Returns
staticsecondsSinceMidnight() ¶ public
secondsSinceMidnight(): intThe number of seconds since midnight.
Returns
intsecondsUntilEndOfDay() ¶ public
secondsUntilEndOfDay(): intThe number of seconds until 23:59:59.
Returns
intsetDate() ¶ public
setDate(int $year, int $month, int $day): staticSet the date to a different date.
Workaround for a PHP bug related to the first day of a month
Parameters
- 
                int$year
- The year to set. 
- 
                int$month
- The month to set. 
- 
                int$day
- The day to set. 
Returns
staticSee Also
setDateTime() ¶ public
setDateTime(int $year, int $month, int $day, int $hour, int $minute, int $second = 0): staticSet the date and time all together
Parameters
- 
                int$year
- The year to set. 
- 
                int$month
- The month to set. 
- 
                int$day
- The day to set. 
- 
                int$hour
- The hour to set. 
- 
                int$minute
- The minute to set. 
- 
                int$second optional
- The second to set. 
Returns
staticsetDefaultLocale() ¶ public static
setDefaultLocale(string|null $locale = null): voidSets the default locale.
Parameters
- 
                string|null$locale optional
- The default locale string to be used or null. 
Returns
voidsetJsonEncodeFormat() ¶ public static
setJsonEncodeFormat(string|array|int $format): voidSets the default format used when converting this object to json
Parameters
- 
                string|array|int$format
- Format. 
Returns
voidsetTestNow() ¶ public static
setTestNow(Cake\Chronos\ChronosInterface|string|null $testNow = null): voidSet a ChronosInterface instance (real or mock) to be returned when a "now" instance is created. The provided instance will be returned specifically under the following conditions:
- A call to the static now() method, ex. ChronosInterface::now()
- When a null (or blank string) is passed to the constructor or parse(), ex. new Chronos(null)
- When the string "now" is passed to the constructor or parse(), ex. new Chronos('now')
- When a string containing the desired time is passed to ChronosInterface::parse()
Note the timezone parameter was left out of the examples above and has no affect as the mock value will be returned regardless of its value.
To clear the test instance call this method using the default parameter of null.
Parameters
- 
                Cake\Chronos\ChronosInterface|string|null$testNow optional
- The instance to use for all future instances. 
Returns
voidsetTimeFromTimeString() ¶ public
setTimeFromTimeString(string $time): staticSet the time by time string
Parameters
- 
                string$time
- Time as string. 
Returns
staticsetTimezone() ¶ public
setTimezone(DateTimeZone|string $value): staticSet the instance's timezone from a string or object
Parameters
- 
                DateTimeZone|string$value
- The DateTimeZone object or timezone name to use. 
Returns
staticsetToStringFormat() ¶ public static
setToStringFormat(string $format): voidSets the default format used when type converting instances of this type to string
Parameters
- 
                string$format
- Format. 
Returns
voidsetWeekEndsAt() ¶ public static
setWeekEndsAt(int $day): voidSet the last day of week
Parameters
- 
                int$day
- The day the week ends with. 
Returns
voidsetWeekStartsAt() ¶ public static
setWeekStartsAt(int $day): voidSet the first day of week
Parameters
- 
                int$day
- The day the week starts with. 
Returns
voidsetWeekendDays() ¶ public static
setWeekendDays(array $days): voidSet weekend days
Parameters
- 
                array$days
- Which days are 'weekends'. 
Returns
voidstartOfCentury() ¶ public
startOfCentury(): staticResets the date to the first day of the century and the time to 00:00:00
Returns
staticstartOfDecade() ¶ public
startOfDecade(): staticResets the date to the first day of the decade and the time to 00:00:00
Returns
staticstartOfMonth() ¶ public
startOfMonth(): staticResets the date to the first day of the month and the time to 00:00:00
Returns
staticstartOfWeek() ¶ public
startOfWeek(): staticResets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00
Returns
staticstartOfYear() ¶ public
startOfYear(): staticResets the date to the first day of the year and the time to 00:00:00
Returns
staticsubDay() ¶ public
subDay(int $value = 1): staticRemove a day from the instance
Parameters
- 
                int$value optional
- The number of days to remove. 
Returns
staticsubDays() ¶ public
subDays(int $value): staticRemove days from the instance
Parameters
- 
                int$value
- The number of days to remove. 
Returns
staticsubHour() ¶ public
subHour(int $value = 1): staticRemove an hour from the instance
Parameters
- 
                int$value optional
- The number of hours to remove. 
Returns
staticsubHours() ¶ public
subHours(int $value): staticRemove hours from the instance
Parameters
- 
                int$value
- The number of hours to remove. 
Returns
staticsubMinute() ¶ public
subMinute(int $value = 1): staticRemove a minute from the instance
Parameters
- 
                int$value optional
- The number of minutes to remove. 
Returns
staticsubMinutes() ¶ public
subMinutes(int $value): staticRemove minutes from the instance
Parameters
- 
                int$value
- The number of minutes to remove. 
Returns
staticsubMonth() ¶ public
subMonth(int $value = 1): staticRemove 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-28Parameters
- 
                int$value optional
- The number of months to remove. 
Returns
staticsubMonthWithOverflow() ¶ public
subMonthWithOverflow(int $value = 1): staticRemove a month with overflow from the instance
Parameters
- 
                int$value optional
- The number of months to remove. 
Returns
staticsubMonths() ¶ public
subMonths(int $value): staticRemove 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-28Parameters
- 
                int$value
- The number of months to remove. 
Returns
staticsubMonthsWithOverflow() ¶ public
subMonthsWithOverflow(int $value): staticRemove months with overflow from the instance
Parameters
- 
                int$value
- The number of months to remove. 
Returns
staticsubSecond() ¶ public
subSecond(int $value = 1): staticRemove a second from the instance
Parameters
- 
                int$value optional
- The number of seconds to remove. 
Returns
staticsubSeconds() ¶ public
subSeconds(int $value): staticRemove seconds from the instance
Parameters
- 
                int$value
- The number of seconds to remove. 
Returns
staticsubWeek() ¶ public
subWeek(int $value = 1): staticRemove a week from the instance
Parameters
- 
                int$value optional
- The number of weeks to remove. 
Returns
staticsubWeekday() ¶ public
subWeekday(int $value = 1): staticRemove a weekday from the instance
Parameters
- 
                int$value optional
- The number of weekdays to remove. 
Returns
staticsubWeekdays() ¶ public
subWeekdays(int $value): staticRemove weekdays from the instance
Parameters
- 
                int$value
- The number of weekdays to remove. 
Returns
staticsubWeeks() ¶ public
subWeeks(int $value): staticRemove weeks to the instance
Parameters
- 
                int$value
- The number of weeks to remove. 
Returns
staticsubYear() ¶ public
subYear(int $value = 1): staticRemove a year from the instance
Parameters
- 
                int$value optional
- The number of years to remove. 
Returns
staticsubYears() ¶ public
subYears(int $value): staticRemove years from the instance.
Parameters
- 
                int$value
- The number of years to remove. 
Returns
statictimeAgoInWords() ¶ public
timeAgoInWords(array $options = []): stringReturns either a relative or a formatted absolute date depending on the difference between the current time and this object.
Options:
- from=> another Time object representing the "now" time
- 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 relative time
- absoluteString=> The printf compatible string when outputting absolute time
- 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. Formatting is done internally using
i18nFormat, see the method for the valid formatting strings
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
- 
                array$options optional
- Array of options. 
Returns
stringRelative time string.
timestamp() ¶ public
timestamp(int $value): staticSet the instance's timestamp
Parameters
- 
                int$value
- The timestamp value to set. 
Returns
statictimezone() ¶ public
timezone(DateTimeZone|string $value): staticAlias for setTimezone()
Parameters
- 
                DateTimeZone|string$value
- The DateTimeZone object or timezone name to use. 
Returns
statictoDateTimeString() ¶ public
toDateTimeString(): stringFormat the instance as date and time
Returns
stringtoDayDateTimeString() ¶ public
toDayDateTimeString(): stringFormat the instance with day, date and time
Returns
stringtoFormattedDateString() ¶ public
toFormattedDateString(): stringFormat the instance as a readable date
Returns
stringtoMutable() ¶ public
toMutable(): Cake\Chronos\MutableDateTimeCreate a new mutable instance from current immutable instance.
Returns
Cake\Chronos\MutableDateTimetoQuarter() ¶ public
toQuarter(bool $range = false): int|arrayReturns the quarter
Parameters
- 
                bool$range optional
- Range. 
Returns
int|array1, 2, 3, or 4 quarter of year or array if $range true
toUnixString() ¶ public
toUnixString(): stringReturns a UNIX timestamp.
Returns
stringUNIX timestamp
today() ¶ public static
today(DateTimeZone|string|null $tz = null): staticCreate a ChronosInterface instance for today
Parameters
- 
                DateTimeZone|string|null$tz optional
- The timezone to use. 
Returns
statictomorrow() ¶ public static
tomorrow(DateTimeZone|string|null $tz = null): staticCreate a ChronosInterface instance for tomorrow
Parameters
- 
                DateTimeZone|string|null$tz optional
- The DateTimeZone object or timezone name the new instance should use. 
Returns
statictz() ¶ public
tz(DateTimeZone|string $value): staticAlias for setTimezone()
Parameters
- 
                DateTimeZone|string$value
- The DateTimeZone object or timezone name to use. 
Returns
staticwasWithinLast() ¶ public
wasWithinLast(string|int $timeInterval): boolReturns true this instance will happen within the specified interval
This overridden method provides backwards compatible behavior for integers, or strings with trailing spaces. This behavior is deprecated and will be removed in future versions of CakePHP.
Parameters
- 
                string|int$timeInterval
- the numeric value with space then time type. Example of valid types: 6 hours, 2 days, 1 minute. 
Returns
boolyear() ¶ public
year(int $value): staticSet the instance's year
Parameters
- 
                int$value
- The year value. 
Returns
staticyesterday() ¶ public static
yesterday(DateTimeZone|string|null $tz = null): staticCreate a ChronosInterface instance for yesterday
Parameters
- 
                DateTimeZone|string|null$tz optional
- The DateTimeZone object or timezone name the new instance should use. 
Returns
staticProperty Detail
$_isDateInstance ¶ protected static
Caches whether or not this class is a subclass of a Date or MutableDate
Type
bool$_jsonEncodeFormat ¶ protected static
The format to use when when converting this object to json
The format should be either the formatting constants from IntlDateFormatter as described in (http://www.php.net/manual/en/class.intldateformatter.php) or a pattern as specified in (http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details)
It is possible to provide an array of 2 constants. In this case, the first position will be used for formatting the date part of the object and the second position will be used to format the time part.
Type
string|array|int$_toStringFormat ¶ protected static
The format to use when formatting a time using Cake\I18n\FrozenTime::i18nFormat()
and __toString
The format should be either the formatting constants from IntlDateFormatter as described in (http://www.php.net/manual/en/class.intldateformatter.php) or a pattern as specified in (http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details)
It is possible to provide an array of 2 constants. In this case, the first position will be used for formatting the date part of the object and the second position will be used to format the time part.
Type
string|array|int$defaultLocale ¶ public static deprecated
The default locale to be used for displaying formatted date strings.
Type
string$diffFormatter ¶ protected static
Instance of the diff formatting object.
Type
Cake\Chronos\DifferenceFormatter$dst ¶ public @property-read
daylight savings time indicator, true if DST, false otherwise
Type
bool$local ¶ public @property-read
checks if the timezone is local, true if local, false otherwise
Type
bool$niceFormat ¶ public static
The format to use when formatting a time using Cake\I18n\FrozenTime::nice()
The format should be either the formatting constants from IntlDateFormatter as described in (http://www.php.net/manual/en/class.intldateformatter.php) or a pattern as specified in (http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details)
It is possible to provide an array of 2 constants. In this case, the first position will be used for formatting the date part of the object and the second position will be used to format the time part.
Type
string|array|int$testNow ¶ protected static
A test ChronosInterface instance to be returned when now instances are created
There is a single test now for all date/time classes provided by Chronos. This aims to emulate stubbing out 'now' which is a single global fact.
Type
Cake\Chronos\ChronosInterface$toStringFormat ¶ protected static
Format to use for __toString method when type juggling occurs.
Type
string$wordAccuracy ¶ public static
The format to use when formatting a time using Time::timeAgoInWords()
and the difference is less than Time::$wordEnd
Type
array$wordFormat ¶ public static
The format to use when formatting a time using Cake\I18n\FrozenTime::timeAgoInWords()
and the difference is more than Cake\I18n\FrozenTime::$wordEnd
Type
string