Class DateTimeType
Datetime type converter.
Use to convert datetime instances to strings & back.
- Cake\Database\Type implements Cake\Database\TypeInterface
- Cake\Database\Type\DateTimeType implements Cake\Database\TypeInterface, Cake\Database\Type\BatchCastingInterface
Direct Subclasses
Properties summary
-
$_className
protectedstring
The classname to use when creating objects. -
$_datetimeInstance
protectedDateTime
An instance of the configured dateTimeClass, used to quickly generate new instances without calling the constructor.
-
$_format
protectedstring|array
String format to use for DateTime parsing -
$_localeFormat
protectedstring|array|integer
The date format to use for parsing incoming dates for marshalling. -
$_name
protectedstring|null
Identifier name for this type. -
$_useLocaleParser
protectedboolean
Whether dates should be parsed using a locale aware parser when marshalling string inputs.
-
$dateTimeClass
public staticstring
The class to use for representing date objects -
$dbTimezone
protectedDateTimeZone|null
Timezone instance. -
$setToDateStart
protectedboolean
Whether or not we want to override the time of the converted Time objects so it points to the start of the day.
Inherited Properties
Method Summary
-
__construct() public
Constructor -
_compare() protected
-
_parseValue() protected
Converts a string into a DateTime object after parsing it using the locale aware parser with the specified format.
-
_setClassName() protected
Set the classname to use when building objects. -
getDateTimeClassName() public
Get the classname used for building objects. -
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. -
setLocaleFormat() public
Sets the format string to use for parsing dates in this class. The formats that are accepted are documented in the
Cake\I18n\Time::parseDateTime()
function. -
setTimezone() public
Set database timezone. -
toDatabase() public
Convert DateTime instance into strings. -
toPHP() public
Convert strings into DateTime instances. -
toStatement() public
Casts given value to Statement equivalent -
useImmutable() public
Change the preferred class name to the FrozenTime implementation. -
useLocaleParser() public
Sets whether or not to parse dates passed to the marshal() function by using a locale aware parser.
-
useMutable() public
Change the preferred class name to the mutable Time implementation.
Method Detail
__construct() public ¶
__construct( string|null $name null )
Constructor
Parameters
- string|null $name optional null
- The name identifying this type
Overrides
_parseValue() protected ¶
_parseValue( string $value )
Converts a string into a DateTime object after parsing it using the locale aware parser with the specified format.
Parameters
- string $value
- The value to parse and convert to an object.
Returns
Cake\I18n\Time
|null_setClassName() protected ¶
_setClassName( string $class , string $fallback )
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.
getDateTimeClassName() public ¶
getDateTimeClassName( )
Get the classname used for building objects.
Returns
manyToPHP() public ¶
manyToPHP( array $values , array $fields , Cake\Database\Driver
$driver )
Returns an array of the values converted to the PHP representation of this type.
Parameters
- array $values
- The original array of values containing the fields to be casted
- array $fields
- The field keys to cast
-
Cake\Database\Driver
$driver - Object from which database preferences and configuration will be extracted.
Returns
Implementation of
marshal() public ¶
marshal( mixed $value )
Convert request data into a datetime object.
Parameters
- mixed $value
- Request data
Returns
Overrides
Implementation of
setLocaleFormat() public ¶
setLocaleFormat( string|array $format )
Sets the format string to use for parsing dates in this class. The formats
that are accepted are documented in the Cake\I18n\Time::parseDateTime()
function.
Parameters
- string|array $format
- The format in which the string are passed.
Returns
$this
See
setTimezone() public ¶
setTimezone( string|DateTimeZone|null $timezone )
Set database timezone.
Specified timezone will be set for DateTime objects before generating
datetime string for saving to database. If null
no timezone conversion
will be done.
Parameters
- string|DateTimeZone|null $timezone
- Database timezone.
Returns
$this
toDatabase() public ¶
toDatabase( string|integer|DateTime|DateTimeImmutable $value , Cake\Database\Driver
$driver )
Convert DateTime instance into strings.
Parameters
- string|integer|DateTime|DateTimeImmutable $value
- The value to convert.
-
Cake\Database\Driver
$driver - The driver instance to convert with.
Returns
Overrides
Implementation of
toPHP() public ¶
toPHP( string $value , Cake\Database\Driver
$driver )
Convert strings into DateTime instances.
Parameters
- string $value
- The value to convert.
-
Cake\Database\Driver
$driver - The driver instance to convert with.
Returns
Cake\I18n\Time
|DateTime|nullOverrides
Implementation of
toStatement() public ¶
toStatement( mixed $value , Cake\Database\Driver
$driver )
Casts given value to Statement equivalent
Parameters
- mixed $value
- value to be converted to PDO statement
-
Cake\Database\Driver
$driver - object from which database preferences and configuration will be extracted
Returns
Overrides
Implementation of
useImmutable() public ¶
useImmutable( )
Change the preferred class name to the FrozenTime implementation.
Returns
$this
useLocaleParser() public ¶
useLocaleParser( boolean $enable true )
Sets whether or not to parse dates passed to the marshal() function by using a locale aware parser.
Parameters
- boolean $enable optional true
- Whether or not to enable
Returns
$this
useMutable() public ¶
useMutable( )
Change the preferred class name to the mutable Time implementation.
Returns
$this
Methods inherited from Cake\Database\Type
__debugInfo() public ¶
__debugInfo( )
Returns an array that can be used to describe the internal state of this object.
Returns
_basicTypeCast() protected ¶
_basicTypeCast( mixed $value )
Checks whether this type is a basic one and can be converted using a callback If it is, returns converted value
Deprecated
Parameters
- mixed $value
- Value to be converted to PHP equivalent
Returns
boolval() public static ¶
boolval( mixed $value )
Type converter for boolean values.
Will convert string true/false into booleans.
Deprecated
Parameters
- mixed $value
- The value to convert to a boolean.
Returns
build() public static ¶
build( string $name )
Returns a Type object capable of converting a type identified by name.
Parameters
- string $name
- type identifier
Returns
Throws
If type identifier is unknown
buildAll() public static ¶
buildAll( )
Returns an arrays with all the mapped type objects, indexed by name.
Returns
clear() public static ¶
clear( )
Clears out all created instances and mapped types classes, useful for testing
getBaseType() public ¶
getBaseType( )
Returns the base type name that this class is inheriting.
Returns
The base type name that this class is inheriting.
Implementation of
getMap() public static ¶
getMap( string|null $type null )
Get mapped class name or instance for type(s).
Parameters
- string|null $type optional null
- Type name to get mapped class for or null to get map array.
Returns
Cake\Database\TypeInterface
|nullConfigured class name or instance for give $type or map array.
Since
getName() public ¶
getName( )
Returns type identifier name for this object.
Returns
The type identifier name for this object.
Implementation of
map() public static ¶
map( string|string[]|Cake\Database\Type[]
|null $type null , string|Cake\Database\Type
|null $className null )
Registers a new type identifier and maps it to a fully namespaced classname, If called with no arguments it will return current types map array If $className is omitted it will return mapped class for $type
Deprecated 3.6.2: - The usage of $type as string[]|\Cake\Database\Type[] is deprecated. Use Type::setMap() with string[] instead. - Passing $className as \Cake\Database\Type instance is deprecated, use class name string only. - Using this method as getter is deprecated. Use Type::getMap() instead.
Parameters
-
string|string[]|
Cake\Database\Type[]
|null $type optional null - If string name of type to map, if array list of arrays to be mapped
-
string|
Cake\Database\Type
|null $className optional null - The classname or object instance of it to register.
Returns
If $type is null then array with current map, if $className is null string configured class name for give $type, null otherwise
newId() public ¶
newId( )
Generate a new primary key value for a given type.
Returns
A new primary key value.
Implementation of
set() public static ¶
set( string $name , Cake\Database\Type
$instance )
Returns a Type object capable of converting a type identified by $name
Parameters
- string $name
- The type identifier you want to set.
-
Cake\Database\Type
$instance - The type instance you want to set.
Properties detail
$_datetimeInstance ¶
An instance of the configured dateTimeClass, used to quickly generate new instances without calling the constructor.
$_format ¶
String format to use for DateTime parsing
[ 'Y-m-d H:i:s', 'Y-m-d\TH:i:sP', ]
$_localeFormat ¶
The date format to use for parsing incoming dates for marshalling.
$_name ¶
Identifier name for this type.
(This property is declared here again so that the inheritance from Cake\Database\Type can be removed in the future.)
$_useLocaleParser ¶
Whether dates should be parsed using a locale aware parser when marshalling string inputs.
false
$dateTimeClass ¶
The class to use for representing date objects
This property can only be used before an instance of this type
class is constructed. After that use useMutable()
or useImmutable()
instead.
Deprecated
'Cake\I18n\Time'
$setToDateStart ¶
Whether or not we want to override the time of the converted Time objects so it points to the start of the day.
This is primarily to avoid subclasses needing to re-implement the same functionality.
false