W3cubDocs

/CakePHP 4.4

Class DateTimeTimezoneType

Extends DateTimeType with support for time zones.

Namespace: Cake\Database\Type

Property Summary

  • $_className protected
    string

    The classname to use when creating objects.

  • $_format protected
    string

    The DateTime format used when converting to string.

  • array|string|int

    The locale-aware format marshal() uses when _useLocaleParser is true.

  • $_marshalFormats protected
    array<string>

    The DateTime formats allowed by marshal().

  • $_name protected
    string|null

    Identifier name for this type

  • $_useLocaleMarshal protected
    bool

    Whether marshal() should use locale-aware parser with _localeMarshalFormat.

  • $dbTimezone protected
    DateTimeZone|null

    Database time zone.

  • $defaultTimezone protected
    DateTimeZone

    Default time zone.

  • bool

    Whether database time zone is kept when converting

  • $setToDateStart protected
    bool

    Whether we want to override the time of the converted Time objects so it points to the start of the day.

  • $userTimezone protected
    DateTimeZone|null

    User 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 FrozenTime implementation.

  • useLocaleParser() public

    Sets whether to parse strings passed to marshal() using the locale-aware format set by setLocaleFormat().

  • useMutable() public deprecated

    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

The name identifying this type

_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

The value to parse and convert to an object.

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

void

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

getDateTimeClassName() public

getDateTimeClassName(): string

Get the classname used for building objects.

Returns

string

getName() public

getName(): string|null

Returns type identifier name for this object.

Returns

string|null

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

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

mixed

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

$this

See Also

DateTimeType::setKeepDatabaseTimezone

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

$this

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

$this

See Also

\Cake\I18n\Time::parseDateTime()

setTimezone() public

setTimezone(DateTimeZone|string|null $timezone): $this

Alias for setDatabaseTimezone().

Parameters

DateTimeZone|string|null $timezone

Database timezone.

Returns

$this

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

$this

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

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

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

mixed

useImmutable() public

useImmutable(): $this

Change the preferred class name to the FrozenTime implementation.

Returns

$this

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

$this

useMutable() public

useMutable(): $this

Change the preferred class name to the mutable Time implementation.

Returns

$this

Property Detail

$_className protected

The classname to use when creating objects.

Type

string

$_format protected

The DateTime format used when converting to string.

Type

string

$_localeMarshalFormat protected

The locale-aware format marshal() uses when _useLocaleParser is true.

See Cake\I18n\Time::parseDateTime() for accepted formats.

Type

array|string|int

$_marshalFormats protected

The DateTime formats allowed by marshal().

Type

array<string>

$_name protected

Identifier name for this type

Type

string|null

$_useLocaleMarshal protected

Whether marshal() should use locale-aware parser with _localeMarshalFormat.

Type

bool

$dbTimezone protected

Database time zone.

Type

DateTimeZone|null

$defaultTimezone protected

Default time zone.

Type

DateTimeZone

$keepDatabaseTimezone protected

Whether database time zone is kept when converting

Type

bool

$setToDateStart protected

Whether 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.

Type

bool

$userTimezone protected

User time zone.

Type

DateTimeZone|null

© 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/4.4/class-Cake.Database.Type.DateTimeTimezoneType.html