类 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
将请求数据转换为日期时间对象。
-
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 要解析并转换为对象的値。
返回
Cake\I18n\DateTime|null
_parseValue() ¶ protected
_parseValue(string $value): Cake\I18n\DateTimeDateTimeImmutable|null
使用 _marshalFormats
中的格式解析字符串后,将字符串转换为 DateTime 对象。
参数
-
string
$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
将请求数据转换为日期时间对象。
最适合将请求数据转换为 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 时,日期时间时区将转换为默认时区。这是默认行为。
参数
-
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