类 DateTimeTimezoneType
扩展 DateTimeType,支持时区。
属性摘要
-
$_className protected
class-stringCake\I18n\DateTime>|class-stringDateTimeImmutable>
创建对象时要使用的类名。
-
$_format protected
string
转换为字符串时使用的 DateTime 格式。
-
$_localeMarshalFormat protected
array|string|int|null
当
_useLocaleParser
为 true 时,marshal()
使用的区域感知格式。 -
$_marshalFormats protected
list<string>
marshal()
允许的 DateTime 格式。 -
$_name protected
string|null
此类型的标识符名称
-
$_useLocaleMarshal protected
bool
marshal()
是否应该使用具有_localeMarshalFormat
的区域感知解析器。 -
$dbTimezone protected
DateTimeZone|null
数据库时区。
-
$defaultTimezone protected
DateTimeZone
默认时区。
-
$keepDatabaseTimezone protected
bool
转换时是否保留数据库时区
-
$userTimezone protected
DateTimeZone|null
用户时区。
方法摘要
-
__construct() public
构造函数
-
_parseLocaleValue() protected
使用
setLocaleFormat()
设置的格式,使用区域感知解析器解析字符串后,将字符串转换为 DateTime 对象。 -
_parseValue() protected
使用
_marshalFormats
中的格式解析字符串后,将字符串转换为 DateTime 对象。 -
getBaseType() public
返回此类继承的基类型名称。
-
getDateTimeClassName() public
获取用于构建对象的类名。
-
getName() public
返回此对象的类型标识符名称。
-
manyToPHP() public
返回转换为此类型的 PHP 表示的值数组。
-
marshal() public
将请求数据转换为 datetime 对象。
-
newId() public
为给定类型生成新的主键值。
-
setDatabaseTimezone() public
设置数据库时区。
-
setKeepDatabaseTimezone() public
设置从数据库字符串创建的 DateTime 对象是否转换为默认时区。
-
setLocaleFormat() public
设置
marshal()
解析字符串时使用的区域感知格式。 -
setUserTimezone() public
设置用户时区。
-
toDatabase() public
将 DateTime 实例转换为字符串。
-
toPHP() public
将给定值从数据库类型转换为 PHP 等效项。
-
toStatement() public
获取要在 PDO 语句中使用的绑定类型。
-
useLocaleParser() public
设置是否使用
setLocaleFormat()
设置的区域感知格式解析传递给marshal()
的字符串。
方法详细信息
__construct() ¶ public
__construct(string|null $name = null)
构造函数
参数
-
string|null
$name optional 标识此类型的名称
_parseLocaleValue() ¶ protected
_parseLocaleValue(string $value): Cake\I18n\DateTime|null
使用 setLocaleFormat()
设置的格式,使用区域感知解析器解析字符串后,将字符串转换为 DateTime 对象。
参数
-
string
$value 要解析并转换为对象的 value。
返回值
Cake\I18n\DateTime|null
_parseValue() ¶ protected
_parseValue(string $value): Cake\I18n\DateTimeDateTimeImmutable|null
使用 _marshalFormats
中的格式解析字符串后,将字符串转换为 DateTime 对象。
参数
-
string
$value 要解析并转换为对象的 value。
返回值
Cake\I18n\DateTimeDateTimeImmutable|null
getBaseType() ¶ public
getBaseType(): string|null
返回此类继承的基类型名称。
当扩展基类型以添加额外功能时,这很有用,但仍然希望框架的其余部分对它继承的基类型使用相同的假设。
返回值
string|null
getDateTimeClassName() ¶ public
getDateTimeClassName(): class-stringCake\I18n\DateTime>|class-stringDateTimeImmutable>
获取用于构建对象的类名。
返回值
class-stringCake\I18n\DateTime>|class-stringDateTimeImmutable>
manyToPHP() ¶ public
manyToPHP(array $values, list<string> $fields, Cake\Database\Driver $driver): array<string, mixed>
返回转换为此类型的 PHP 表示的值数组。
参数
-
array
$values -
list<string>
$fields -
Cake\Database\Driver
$driver
返回值
array<string, mixed>
marshal() ¶ public
marshal(mixed $value): DateTimeInterface|null
将请求数据转换为 datetime 对象。
最适合将请求数据转换为 PHP 对象,这些对象对 ORM/数据库层更有意义。
参数
-
mixed
$value 请求数据
返回值
DateTimeInterface|null
setDatabaseTimezone() ¶ public
setDatabaseTimezone(DateTimeZone|string|null $timezone): $this
设置数据库时区。
这是将数据库字符串转换为 DateTime 实例以及将 DateTime 实例转换为数据库字符串时使用的时区。
参数
-
DateTimeZone|string|null
$timezone 数据库时区。
返回值
$this
另请参阅
setKeepDatabaseTimezone() ¶ public
setKeepDatabaseTimezone(bool $keep): $this
设置从数据库字符串创建的 DateTime 对象是否转换为默认时区。
如果您的数据库日期时间在您想在 DateTime 实例中保留的特定时区,则将其设置为 true。
当为 false 时,datetime 时区将转换为默认时区。这是默认行为。
参数
-
bool
$keep 如果为 true,则转换到 DateTime 实例时保留数据库时区。
返回值
$this
setLocaleFormat() ¶ public
setLocaleFormat(array|string $format): $this
设置 marshal()
解析字符串时使用的区域感知格式。
请参阅 Cake\I18n\Time::parseDateTime()
以了解可接受的格式。
参数
-
array|string
$format 区域感知格式
返回值
$this
另请参阅
setUserTimezone() ¶ public
setUserTimezone(DateTimeZone|string|null $timezone): $this
设置用户时区。
这是将字符串编组到 DateTime 实例时使用的时区。
参数
-
DateTimeZone|string|null
$timezone 用户时区。
返回值
$this
toDatabase() ¶ public
toDatabase(mixed $value, Cake\Database\Driver $driver): string|null
将 DateTime 实例转换为字符串。
参数
-
mixed
$value 要转换的值。
-
Cake\Database\Driver
$driver 要转换的驱动程序实例。
返回值
string|null
toPHP() ¶ public
toPHP(mixed $value, Cake\Database\Driver $driver): Cake\I18n\DateTimeDateTimeImmutable|null
将给定值从数据库类型转换为 PHP 等效项。
参数
-
mixed
$value 要转换为 PHP 等效项的值
-
Cake\Database\Driver
$driver 将从中提取数据库首选项和配置的对象
返回值
Cake\I18n\DateTimeDateTimeImmutable|null
toStatement() ¶ public
toStatement(mixed $value, Cake\Database\Driver $driver): int
获取要在 PDO 语句中使用的绑定类型。
参数
-
mixed
$value -
Cake\Database\Driver
$driver
返回值
int
useLocaleParser() ¶ public
useLocaleParser(bool $enable = true): $this
设置是否使用 setLocaleFormat()
设置的区域感知格式解析传递给 marshal()
的字符串。
参数
-
bool
$enable 可选 是否启用
返回值
$this