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
protectedThe classname to use when creating objects.string
-
$_datetimeInstance
protectedDateTime
An instance of the configured dateTimeClass, used to quickly generate new instances without calling the constructor.
-
$_format
protectedString format to use for DateTime parsingstring|array
-
$_localeFormat
protectedThe date format to use for parsing incoming dates for marshalling.string|array|integer
-
$_name
protectedIdentifier name for this type.string|null
-
$_useLocaleParser
protectedboolean
Whether dates should be parsed using a locale aware parser when marshalling string inputs.
- The class to use for representing date objects
string
-
$dbTimezone
protectedTimezone instance.DateTimeZone|null
-
$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() publicConstructor
- _compare() protected
- _parseValue() protected
Converts a string into a DateTime object after parsing it using the locale aware parser with the specified format.
- _setClassName() protectedSet the classname to use when building objects.
- getDateTimeClassName() publicGet the classname used for building objects.
- manyToPHP() public
Returns an array of the values converted to the PHP representation of this type.
- marshal() publicConvert 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() publicSet database timezone.
- toDatabase() publicConvert DateTime instance into strings.
- toPHP() publicConvert strings into DateTime instances.
- toStatement() publicCasts given value to Statement equivalent
- useImmutable() publicChange 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() publicChange the preferred class name to the mutable Time implementation.
Method Detail
__construct()source public
__construct( string|null $name = null )
Constructor
Parameters
- string|null
$name
optional null - The name identifying this type
Overrides
Cake\Database\Type::__construct()
_compare()source protected
_compare( Cake\I18n\Time|DateTime $date , mixed $value )
Parameters
-
Cake\I18n\Time
|DateTime$date
- DateTime object
- mixed
$value
- Request data
Returns
boolean_parseValue()source 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()source 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()source public
getDateTimeClassName( )
Get the classname used for building objects.
Returns
stringmanyToPHP()source 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
arrayImplementation of
Cake\Database\Type\BatchCastingInterface::manyToPHP()
marshal()source public
marshal( mixed $value )
Convert request data into a datetime object.
Parameters
- mixed
$value
- Request data
Returns
DateTimeInterface|nullOverrides
Cake\Database\Type::marshal()
Implementation of
Cake\Database\TypeInterface::marshal()
setLocaleFormat()source 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
\Cake\I18n\Time::parseDateTime()setTimezone()source 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()source 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
string|nullOverrides
Cake\Database\Type::toDatabase()
Implementation of
Cake\Database\TypeInterface::toDatabase()
toPHP()source 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
Cake\Database\Type::toPHP()
Implementation of
Cake\Database\TypeInterface::toPHP()
toStatement()source 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
mixedOverrides
Cake\Database\Type::toStatement()
Implementation of
Cake\Database\TypeInterface::toStatement()
useImmutable()source public
useImmutable( )
Change the preferred class name to the FrozenTime implementation.
Returns
$this
useLocaleParser()source 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()source public
useMutable( )
Change the preferred class name to the mutable Time implementation.
Returns
$this
Methods inherited from Cake\Database\Type
__debugInfo()source public
__debugInfo( )
Returns an array that can be used to describe the internal state of this object.
Returns
array_basicTypeCast()source protected deprecated
_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
3.1 All types should now be a specific classParameters
- mixed
$value
- Value to be converted to PHP equivalent
Returns
mixedboolval()source public static deprecated
boolval( mixed $value )
Type converter for boolean values.
Will convert string true/false into booleans.
Deprecated
3.1.8 This method is now unused.Parameters
- mixed
$value
- The value to convert to a boolean.
Returns
booleanbuild()source public static
build( string $name )
Returns a Type object capable of converting a type identified by name.
Parameters
- string
$name
- type identifier
Returns
Cake\Database\Type
Throws
InvalidArgumentExceptionIf type identifier is unknown
buildAll()source public static
buildAll( )
Returns an arrays with all the mapped type objects, indexed by name.
Returns
arrayclear()source public static
clear( )
Clears out all created instances and mapped types classes, useful for testing
getBaseType()source public
getBaseType( )
Returns the base type name that this class is inheriting.
Returns
stringThe base type name that this class is inheriting.
Implementation of
Cake\Database\TypeInterface::getBaseType()
getMap()source 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
array|string|Cake\Database\TypeInterface
|nullConfigured class name or instance for give $type or map array.
Since
3.6.2getName()source public
getName( )
Returns type identifier name for this object.
Returns
stringThe type identifier name for this object.
Implementation of
Cake\Database\TypeInterface::getName()
map()source 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
array|string|nullIf $type is null then array with current map, if $className is null string configured class name for give $type, null otherwise
newId()source public
newId( )
Generate a new primary key value for a given type.
Returns
mixedA new primary key value.
Implementation of
Cake\Database\TypeInterface::newId()
set()source 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.
setMap()source public static
setMap( array $map )
Set type to classname mapping.
Parameters
- array
$map
- List of types to be mapped.
Since
3.6.2strval()source public static deprecated
strval( mixed $value )
Type converter for string values.
Will convert values into strings
Deprecated
3.1.8 This method is now unused.Parameters
- mixed
$value
- The value to convert to a string.
Returns
stringProperties detail
$_datetimeInstancesource
protected DateTime
An instance of the configured dateTimeClass, used to quickly generate new instances without calling the constructor.
$_formatsource
protected string|array
String format to use for DateTime parsing
[ 'Y-m-d H:i:s', 'Y-m-d\TH:i:sP', ]
$_localeFormatsource
protected string|array|integer
The date format to use for parsing incoming dates for marshalling.
$_namesource
protected string|null
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.)
$_useLocaleParsersource
protected boolean
Whether dates should be parsed using a locale aware parser when marshalling string inputs.
false
$dateTimeClasssource
public static string
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
3.2.0 Use DateTimeType::useMutable() or DateTimeType::useImmutable() instead.'Cake\I18n\Time'
$setToDateStartsource
protected boolean
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
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.7/class-Cake.Database.Type.DateTimeType.html