Class DateTimeType

Datetime type converter.

Use to convert datetime instances to strings & back.

Cake\Database\Type implements Cake\Database\TypeInterface
Extended by Cake\Database\Type\DateTimeType implements Cake\Database\TypeInterface

Direct Subclasses

Properties summary

  • $_className protected
    string
    The classname to use when creating objects.
  • $_datetimeInstance protected
    DateTime

    An instance of the configured dateTimeClass, used to quickly generate new instances without calling the constructor.

  • $_format protected
    string|array
    String format to use for DateTime parsing
  • $_localeFormat protected
    string|array|integer
    The date format to use for parsing incoming dates for marshalling.
  • $_name protected
    string|null
    Identifier name for this type.
  • $_useLocaleParser protected
    boolean

    Whether dates should be parsed using a locale aware parser when marshalling string inputs.

  • $dateTimeClass public static
    string
    The class to use for representing date objects

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.
  • Get the classname used for building objects.
  • marshal() public
    Convert request data into a datetime object.
  • 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.

  • toDatabase() public
    Convert DateTime instance into strings.
  • toPHP() public
    Convert strings into DateTime instances.
  • toStatement() public
    Casts given value to Statement equivalent
  • Change the preferred class name to the FrozenTime implementation.
  • 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()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

string

marshal()source public

marshal( mixed $value )

Convert request data into a datetime object.

Parameters

mixed $value
Request data

Returns

Cake\I18n\Time|DateTime

Overrides

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()

toDatabase()source public

toDatabase( string|integer|DateTime $value , Cake\Database\Driver $driver )

Convert DateTime instance into strings.

Parameters

string|integer|DateTime $value
The value to convert.
Cake\Database\Driver $driver
The driver instance to convert with.

Returns

string

Overrides

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

Overrides

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

mixed

Overrides

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

_basicTypeCast()source 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

3.1 All types should now be a specific class

Parameters

mixed $value
value to be converted to PHP equivalent

Returns

mixed

boolval()source public static

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

boolean

build()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

InvalidArgumentException
If type identifier is unknown

buildAll()source public static

buildAll( )

Returns an arrays with all the mapped type objects, indexed by name

Returns

array

clear()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

string
The base type name that this class is inheriting.

Implementation of

Cake\Database\TypeInterface::getBaseType()

getName()source public

getName( )

Returns type identifier name for this object.

Returns

string
The type identifier name for this object.

Implementation of

Cake\Database\TypeInterface::getName()

map()source public static

map( string|array|Cake\Database\Type|null $type null , string|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

Parameters

string|array|Cake\Database\Type|null $type optional null
if string name of type to map, if array list of arrays to be mapped
string|null $className optional null
The classname to register.

Returns

array|string|null

if $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

mixed
A 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.

strval()source public static

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

string

Properties detail

$_classNamesource

protected string

The classname to use when creating objects.

$_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'

© 2005–2017 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.4/class-Cake.Database.Type.DateTimeType.html