Class TimeHelper
Time Helper class for easy use of time data.
Manipulation of time data.
See: \Cake\I18n\Time
Link: https://book.cakephp.org/5/en/views/helpers/time.html
Property Summary
-
$_View protected
Cake\View\View
The View instance this helper is attached to
-
$_config protected
array<string, mixed>
Runtime config
-
$_configInitialized protected
bool
Whether the config property has already been configured with defaults
-
$_defaultConfig protected
array<string, mixed>
Config options
-
$_templater protected
Cake\View\StringTemplate|null
StringTemplate instance.
-
$helperInstances protected
array<string, \Cake\View\Helper>
Loaded helper instances.
-
$helpers protected
array
List of helpers used by this helper
Method Summary
-
__construct() public
Default Constructor
-
__debugInfo() public
Returns an array that can be used to describe the internal state of this object.
-
__get() public
Lazy loads helpers.
-
_configDelete() protected
Deletes a single config key.
-
_configRead() protected
Reads a config key.
-
_configWrite() protected
Writes a config key.
-
_confirm() protected
Returns a string to be used as onclick handler for confirm dialogs.
-
_getTimezone() protected
Get a timezone.
-
addClass() public
Adds the given class to the element options
-
configShallow() public
Merge provided config with existing config. Unlike
config()
which does a recursive merge for nested keys, this method does a simple merge. -
format() public
Returns a formatted date string, given either a Time instance, UNIX timestamp or a valid strtotime() date string.
-
formatTemplate() public
Formats a template string with $data
-
fromString() public
Returns a DateTime object, given either a UNIX timestamp or a valid strtotime() date string.
-
getConfig() public
Returns the config.
-
getConfigOrFail() public
Returns the config for this specific key.
-
getTemplates() public
Gets templates to use or a specific template.
-
getView() public
Get the view instance this helper is bound to.
-
gmt() public
Returns gmt as a UNIX timestamp.
-
i18nFormat() public
Returns a formatted date string, given either a Datetime instance, UNIX timestamp or a valid strtotime() date string.
-
implementedEvents() public
Event listeners.
-
initialize() public
Constructor hook method.
-
isFuture() public
Returns true, if the given datetime string is in the future.
-
isPast() public
Returns true, if the given datetime string is in the past.
-
isThisMonth() public
Returns true if given datetime string is within this month
-
isThisWeek() public
Returns true if given datetime string is within this week.
-
isThisYear() public
Returns true if given datetime string is within the current year.
-
isToday() public
Returns true, if the given datetime string is today.
-
isTomorrow() public
Returns true if given datetime string is tomorrow.
-
isWithinNext() public
Returns true if specified datetime is within the interval specified, else false.
-
nice() public
Returns a nicely formatted date string for given Datetime string.
-
setConfig() public
Sets the config.
-
setTemplates() public
Sets templates to use.
-
templater() public
Returns the templater instance.
-
timeAgoInWords() public
Formats a date into a phrase expressing the relative time.
-
toAtom() public
Returns a date formatted for Atom RSS feeds.
-
toQuarter() public
Returns the quarter
-
toRss() public
Formats date for RSS feeds
-
toUnix() public
Returns a UNIX timestamp from a textual datetime description.
-
wasWithinLast() public
Returns true if specified datetime was within the interval specified, else false.
-
wasYesterday() public
Returns true if given datetime string was yesterday.
Method Detail
__construct() ¶ public
__construct(Cake\View\View $view, array<string, mixed> $config = [])
Default Constructor
Parameters
-
Cake\View\View
$view The View this helper is being attached to.
-
array<string, mixed>
$config optional Configuration settings for the helper.
__debugInfo() ¶ public
__debugInfo(): array<string, mixed>
Returns an array that can be used to describe the internal state of this object.
Returns
array<string, mixed>
__get() ¶ public
__get(string $name): Cake\View\Helper|null
Lazy loads helpers.
Parameters
-
string
$name Name of the property being accessed.
Returns
Cake\View\Helper|null
_configDelete() ¶ protected
_configDelete(string $key): void
Deletes a single config key.
Parameters
-
string
$key Key to delete.
Returns
void
Throws
Cake\Core\Exception\CakeException
if attempting to clobber existing config
_configRead() ¶ protected
_configRead(string|null $key): mixed
Reads a config key.
Parameters
-
string|null
$key Key to read.
Returns
mixed
_configWrite() ¶ protected
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
Writes a config key.
Parameters
-
array<string, mixed>|string
$key Key to write to.
-
mixed
$value Value to write.
-
string|bool
$merge optional True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.
Returns
void
Throws
Cake\Core\Exception\CakeException
if attempting to clobber existing config
_confirm() ¶ protected
_confirm(string $okCode, string $cancelCode): string
Returns a string to be used as onclick handler for confirm dialogs.
Parameters
-
string
$okCode Code to be executed after user chose 'OK'
-
string
$cancelCode Code to be executed after user chose 'Cancel'
Returns
string
_getTimezone() ¶ protected
_getTimezone(DateTimeZone|string|null $timezone): DateTimeZone|string|null
Get a timezone.
Will use the provided timezone, or default output timezone if defined.
Parameters
-
DateTimeZone|string|null
$timezone The override timezone if applicable.
Returns
DateTimeZone|string|null
addClass() ¶ public
addClass(array<string, mixed> $options, string $class, string $key = 'class'): array<string, mixed>
Adds the given class to the element options
Parameters
-
array<string, mixed>
$options Array options/attributes to add a class to
-
string
$class The class name being added.
-
string
$key optional the key to use for class. Defaults to
'class'
.
Returns
array<string, mixed>
configShallow() ¶ public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
Merge provided config with existing config. Unlike config()
which does
a recursive merge for nested keys, this method does a simple merge.
Setting a specific value:
$this->configShallow('key', $value);
Setting a nested value:
$this->configShallow('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Parameters
-
array<string, mixed>|string
$key The key to set, or a complete array of configs.
-
mixed|null
$value optional The value to set.
Returns
$this
format() ¶ public
format(Cake\Chronos\ChronosDate|DateTimeInterface|string|int|null $date, array<int>|string|int|null $format = null, string|false $invalid = false, DateTimeZone|string|null $timezone = null): string|int|false
Returns a formatted date string, given either a Time instance, UNIX timestamp or a valid strtotime() date string.
This method is an alias for TimeHelper::i18nFormat().
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int|null
$date UNIX timestamp, strtotime() valid string or DateTime object (or a date format string).
-
array<int>|string|int|null
$format optional date format string (or a UNIX timestamp,
strtotime()
valid string or DateTime object).-
string|false
$invalid optional Default value to display on invalid dates
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
string|int|false
See Also
formatTemplate() ¶ public
formatTemplate(string $name, array<string, mixed> $data): string
Formats a template string with $data
Parameters
-
string
$name The template name.
-
array<string, mixed>
$data The data to insert.
Returns
string
fromString() ¶ public
fromString(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): Cake\I18n\DateTime
Returns a DateTime object, given either a UNIX timestamp or a valid strtotime() date string.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
Cake\I18n\DateTime
getConfig() ¶ public
getConfig(string|null $key = null, mixed $default = null): mixed
Returns the config.
Usage
Reading the whole config:
$this->getConfig();
Reading a specific value:
$this->getConfig('key');
Reading a nested value:
$this->getConfig('some.nested.key');
Reading with default value:
$this->getConfig('some-key', 'default-value');
Parameters
-
string|null
$key optional The key to get or null for the whole config.
-
mixed
$default optional The return value when the key does not exist.
Returns
mixed
getConfigOrFail() ¶ public
getConfigOrFail(string $key): mixed
Returns the config for this specific key.
The config value for this key must exist, it can never be null.
Parameters
-
string
$key The key to get.
Returns
mixed
Throws
InvalidArgumentException
getTemplates() ¶ public
getTemplates(string|null $template = null): array|string
Gets templates to use or a specific template.
Parameters
-
string|null
$template optional String for reading a specific template, null for all.
Returns
array|string
getView() ¶ public
getView(): Cake\View\View
Get the view instance this helper is bound to.
Returns
Cake\View\View
gmt() ¶ public
gmt(Cake\Chronos\ChronosDate|DateTimeInterface|string|int|null $string = null): string
Returns gmt as a UNIX timestamp.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int|null
$string optional UNIX timestamp, strtotime() valid string or DateTime object
Returns
string
See Also
i18nFormat() ¶ public
i18nFormat(Cake\Chronos\ChronosDate|DateTimeInterface|string|int|null $date, array|string|int|null $format = null, string|false $invalid = false, DateTimeZone|string|null $timezone = null): string|int|false
Returns a formatted date string, given either a Datetime instance, UNIX timestamp or a valid strtotime() date string.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int|null
$date UNIX timestamp, strtotime() valid string or DateTime object
-
array|string|int|null
$format optional Intl compatible format string.
-
string|false
$invalid optional Default value to display on invalid dates
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
string|int|false
Throws
Exception
When the date cannot be parsed
See Also
implementedEvents() ¶ public
implementedEvents(): array<string, mixed>
Event listeners.
By defining one of the callback methods a helper is assumed to be interested in the related event.
Override this method if you need to add non-conventional event listeners. Or if you want helpers to listen to non-standard events.
Returns
array<string, mixed>
initialize() ¶ public
initialize(array<string, mixed> $config): void
Constructor hook method.
Implement this method to avoid having to overwrite the constructor and call parent.
Parameters
-
array<string, mixed>
$config The configuration settings provided to this helper.
Returns
void
isFuture() ¶ public
isFuture(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true, if the given datetime string is in the future.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
isPast() ¶ public
isPast(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true, if the given datetime string is in the past.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
isThisMonth() ¶ public
isThisMonth(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true if given datetime string is within this month
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
isThisWeek() ¶ public
isThisWeek(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true if given datetime string is within this week.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
isThisYear() ¶ public
isThisYear(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true if given datetime string is within the current year.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
isToday() ¶ public
isToday(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true, if the given datetime string is today.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
isTomorrow() ¶ public
isTomorrow(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true if given datetime string is tomorrow.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
isWithinNext() ¶ public
isWithinNext(string $timeInterval, Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true if specified datetime is within the interval specified, else false.
Parameters
-
string
$timeInterval the numeric value with space then time type. Example of valid types: 6 hours, 2 days, 1 minute.
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
See Also
nice() ¶ public
nice(DateTimeInterface|string|int|null $dateString = null, DateTimeZone|string|null $timezone = null, string|null $locale = null): string
Returns a nicely formatted date string for given Datetime string.
Parameters
-
DateTimeInterface|string|int|null
$dateString optional UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
-
string|null
$locale optional Locale string.
Returns
string
setConfig() ¶ public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
Sets the config.
Usage
Setting a specific value:
$this->setConfig('key', $value);
Setting a nested value:
$this->setConfig('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Parameters
-
array<string, mixed>|string
$key The key to set, or a complete array of configs.
-
mixed|null
$value optional The value to set.
-
bool
$merge optional Whether to recursively merge or overwrite existing config, defaults to true.
Returns
$this
Throws
Cake\Core\Exception\CakeException
When trying to set a key that is invalid.
setTemplates() ¶ public
setTemplates(array<string> $templates): $this
Sets templates to use.
Parameters
-
array<string>
$templates Templates to be added.
Returns
$this
templater() ¶ public
templater(): Cake\View\StringTemplate
Returns the templater instance.
Returns
Cake\View\StringTemplate
timeAgoInWords() ¶ public
timeAgoInWords(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateTime, array<string, mixed> $options = []): string
Formats a date into a phrase expressing the relative time.
Additional options
element
- The element to wrap the formatted time in. Has a few additional options:tag
- The tag to use, defaults to 'span'.class
- The class name to use, defaults totime-ago-in-words
.title
- Defaults to the $dateTime input.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateTime UNIX timestamp, strtotime() valid string or DateTime object.
-
array<string, mixed>
$options optional Default format if timestamp is used in $dateString
Returns
string
See Also
toAtom() ¶ public
toAtom(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): string
Returns a date formatted for Atom RSS feeds.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
string
See Also
toQuarter() ¶ public
toQuarter(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, bool $range = false): array<string>|int
Returns the quarter
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
bool
$range optional if true returns a range in Y-m-d format
Returns
array<string>|int
See Also
toRss() ¶ public
toRss(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): string
Formats date for RSS feeds
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
string
toUnix() ¶ public
toUnix(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): string
Returns a UNIX timestamp from a textual datetime description.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
string
See Also
wasWithinLast() ¶ public
wasWithinLast(string $timeInterval, Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true if specified datetime was within the interval specified, else false.
Parameters
-
string
$timeInterval the numeric value with space then time type. Example of valid types: 6 hours, 2 days, 1 minute.
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
See Also
wasYesterday() ¶ public
wasYesterday(Cake\Chronos\ChronosDate|DateTimeInterface|string|int $dateString, DateTimeZone|string|null $timezone = null): bool
Returns true if given datetime string was yesterday.
Parameters
-
Cake\Chronos\ChronosDate|DateTimeInterface|string|int
$dateString UNIX timestamp, strtotime() valid string or DateTime object
-
DateTimeZone|string|null
$timezone optional User's timezone string or DateTimeZone object
Returns
bool
Property Detail
$_configInitialized ¶ protected
Whether the config property has already been configured with defaults
Type
bool