Class DateType
Class DateType
Property Summary
-
$_className protected
stringThe classname to use when creating objects.
-
$_format protected
stringThe DateTime format used when converting to string.
-
$_localeMarshalFormat protected
array|string|intThe locale-aware format
marshal()uses when_useLocaleParseris true. -
$_marshalFormats protected
array<string>The DateTime formats allowed by
marshal(). -
$_name protected
string|nullIdentifier name for this type
-
$_useLocaleMarshal protected
boolWhether
marshal()should use locale-aware parser with_localeMarshalFormat. -
$dbTimezone protected
DateTimeZone|nullDatabase time zone.
-
$defaultTimezone protected
DateTimeZoneDefault time zone.
-
$keepDatabaseTimezone protected
boolWhether database time zone is kept when converting
-
$setToDateStart protected
boolIn this class we want Date objects to have their time set to the beginning of the day.
-
$userTimezone protected
DateTimeZone|nullUser time zone.
Method Summary
-
__construct() public
Constructor
-
_parseLocaleValue() protected
Converts a string into a DateTime object after parsing it using the locale aware parser with the format set by
setLocaleFormat(). -
_parseValue() protected
Converts a string into a DateTime object after parsing it using the formats in
_marshalFormats. -
_setClassName() protected
Set the classname to use when building objects.
-
getBaseType() public
Returns the base type name that this class is inheriting.
-
getDateTimeClassName() public
Get the classname used for building objects.
-
getName() public
Returns type identifier name for this object.
-
manyToPHP() public
Returns an array of the values converted to the PHP representation of this type.
-
marshal() public
Convert request data into a datetime object.
-
newId() public
Generate a new primary key value for a given type.
-
setDatabaseTimezone() public
Set database timezone.
-
setKeepDatabaseTimezone() public
Set whether DateTime object created from database string is converted to default time zone.
-
setLocaleFormat() public
Sets the locale-aware format used by
marshal()when parsing strings. -
setTimezone() public deprecated
Alias for
setDatabaseTimezone(). -
setUserTimezone() public
Set user timezone.
-
toDatabase() public
Convert DateTime instance into strings.
-
toPHP() public
Casts given value from a database type to a PHP equivalent.
-
toStatement() public
Casts given value to Statement equivalent
-
useImmutable() public deprecated
Change the preferred class name to the FrozenDate implementation.
-
useLocaleParser() public
Sets whether to parse strings passed to
marshal()using the locale-aware format set bysetLocaleFormat(). -
useMutable() public deprecated
Change the preferred class name to the mutable Date implementation.
Method Detail
__construct() ¶ public
__construct(string|null $name = null)
Constructor
Parameters
-
string|null$name optional
_parseLocaleValue() ¶ protected
_parseLocaleValue(string $value): Cake\I18n\I18nDateTimeInterface|null
Converts a string into a DateTime object after parsing it using the locale
aware parser with the format set by setLocaleFormat().
Parameters
-
string$value
Returns
Cake\I18n\I18nDateTimeInterface|null_parseValue() ¶ protected
_parseValue(string $value): DateTimeInterface|null
Converts a string into a DateTime object after parsing it using the
formats in _marshalFormats.
Parameters
-
string$value The value to parse and convert to an object.
Returns
DateTimeInterface|null_setClassName() ¶ protected
_setClassName(string $class, string $fallback): void
Set the classname to use when building objects.
Parameters
-
string$class The classname to use.
-
string$fallback The classname to use when the preferred class does not exist.
Returns
voidgetBaseType() ¶ public
getBaseType(): string|null
Returns the base type name that this class is inheriting.
This is useful when extending base type for adding extra functionality, but still want the rest of the framework to use the same assumptions it would do about the base type it inherits from.
Returns
string|nullgetDateTimeClassName() ¶ public
getDateTimeClassName(): string
Get the classname used for building objects.
Returns
stringgetName() ¶ public
getName(): string|null
Returns type identifier name for this object.
Returns
string|nullmanyToPHP() ¶ public
manyToPHP(array $values, array<string> $fields, Cake\Database\DriverInterface $driver): array<string, mixed>
Returns an array of the values converted to the PHP representation of this type.
Parameters
-
array$values -
array<string>$fields -
Cake\Database\DriverInterface$driver
Returns
array<string, mixed>marshal() ¶ public
marshal(mixed $value): DateTimeInterface|null
Convert request data into a datetime object.
Most useful for converting request data into PHP objects, that make sense for the rest of the ORM/Database layers.
Parameters
-
mixed$value Request data
Returns
DateTimeInterface|nullnewId() ¶ public
newId(): mixed
Generate a new primary key value for a given type.
This method can be used by types to create new primary key values when entities are inserted.
Returns
mixedsetDatabaseTimezone() ¶ public
setDatabaseTimezone(DateTimeZone|string|null $timezone): $this
Set database timezone.
This is the time zone used when converting database strings to DateTime instances and converting DateTime instances to database strings.
Parameters
-
DateTimeZone|string|null$timezone Database timezone.
Returns
$thisSee Also
setKeepDatabaseTimezone() ¶ public
setKeepDatabaseTimezone(bool $keep): $this
Set whether DateTime object created from database string is converted to default time zone.
If your database date times are in a specific time zone that you want to keep in the DateTime instance then set this to true.
When false, datetime timezones are converted to default time zone. This is default behavior.
Parameters
-
bool$keep If true, database time zone is kept when converting to DateTime instances.
Returns
$thissetLocaleFormat() ¶ public
setLocaleFormat(array|string $format): $this
Sets the locale-aware format used by marshal() when parsing strings.
See Cake\I18n\Time::parseDateTime() for accepted formats.
Parameters
-
array|string$format The locale-aware format
Returns
$thisSee Also
setTimezone() ¶ public
setTimezone(DateTimeZone|string|null $timezone): $this
Alias for setDatabaseTimezone().
Parameters
-
DateTimeZone|string|null$timezone Database timezone.
Returns
$thissetUserTimezone() ¶ public
setUserTimezone(DateTimeZone|string|null $timezone): $this
Set user timezone.
This is the time zone used when marshalling strings to DateTime instances.
Parameters
-
DateTimeZone|string|null$timezone User timezone.
Returns
$thistoDatabase() ¶ public
toDatabase(mixed $value, Cake\Database\DriverInterface $driver): string|null
Convert DateTime instance into strings.
Parameters
-
mixed$value The value to convert.
-
Cake\Database\DriverInterface$driver The driver instance to convert with.
Returns
string|nulltoPHP() ¶ public
toPHP(mixed $value, Cake\Database\DriverInterface $driver): DateTimeInterface|null
Casts given value from a database type to a PHP equivalent.
Parameters
-
mixed$value Value to be converted to PHP equivalent
-
Cake\Database\DriverInterface$driver Object from which database preferences and configuration will be extracted
Returns
DateTimeInterface|nulltoStatement() ¶ public
toStatement(mixed $value, Cake\Database\DriverInterface $driver): mixed
Casts given value to Statement equivalent
Parameters
-
mixed$value value to be converted to PDO statement
-
Cake\Database\DriverInterface$driver object from which database preferences and configuration will be extracted
Returns
mixeduseImmutable() ¶ public
useImmutable(): $this
Change the preferred class name to the FrozenDate implementation.
Returns
$thisuseLocaleParser() ¶ public
useLocaleParser(bool $enable = true): $this
Sets whether to parse strings passed to marshal() using
the locale-aware format set by setLocaleFormat().
Parameters
-
bool$enable optional Whether to enable
Returns
$thisuseMutable() ¶ public
useMutable(): $this
Change the preferred class name to the mutable Date implementation.
Returns
$thisProperty Detail
$_localeMarshalFormat ¶ protected
The locale-aware format marshal() uses when _useLocaleParser is true.
See Cake\I18n\Time::parseDateTime() for accepted formats.
Type
array|string|int$_useLocaleMarshal ¶ protected
Whether marshal() should use locale-aware parser with _localeMarshalFormat.
Type
bool$setToDateStart ¶ protected
In this class we want Date objects to have their time set to the beginning of the day.
This is primarily to avoid subclasses needing to re-implement the same functionality.
Type
bool