(PHP 8 >= 8.2.0)
DateTime::__serialize -- DateTimeImmutable::__serialize -- DateTimeInterface::__serialize — Serializa um DateTime
O manipulador __serialize().
Esta função não possui parâmetros.
A representação serializada do objeto DateTime.
Exemplo #1 Exemplo de DateTime::__serialize()
<?php
class CustomDateTimeImmutable extends DateTimeImmutable
{
#[\Override]
public function __serialize(): array
{
return [
'date' => $this->format(DateTimeInterface::W3C),
'timestamp' => $this->getTimestamp(),
'timezone' => $this->getTimeZone()->getName(),
'to' => 'Tome uma xícara de café',
];
}
}
$date = new CustomDateTimeImmutable('2025-03-27');
var_dump(serialize($date));O exemplo acima produzirá:
string(190) "O:23:"CustomDateTimeImmutable":4:{s:4:"date";s:25:"2025-03-27T00:00:00-03:00";s:9:"timestamp";i:1743044400;s:8:"timezone";s:17:"America/Sao_Paulo";s:2:"to";s:25:"Tome uma xícara de café";}"
Um Error é lançado ao tentar desserializar um objeto DateTime personalizado se __serialize() estiver definido, mas __unserialize() estiver ausente.