DateTime::__unserialize
PHP function
Edit on GitHub ✎
(PHP 8 >= 8.2.0)
Unserialize an Datetime
Description
DateTime::__unserialize(array $data): void
DateTimeImmutable::__unserialize(array $data): void
DateTimeInterface::__unserialize(array $data): void
The __unserialize() handler.
Parameters
dataThe serialized
DateTime.
Return Values
Void
Examples
DateTime::__unserialize example
php
<?php
class CustomDateTimeImmutable extends DateTimeImmutable
{
#[\Override]
public function __unserialize(array $data): void
{
echo "Time to `{$data['to']}`:\n\n";
parent::__construct($data['date'], new DateTimeZone($data['timezone']));
}
}
$serializedData = 'O:23:"CustomDateTimeImmutable":4:{s:4:"date";s:25:"2025-03-27T00:00:00+00:00";s:9:"timestamp";i:1743033600;s:8:"timezone";s:3:"UTC";s:2:"to";s:21:"Drink a cup of coffee";}';
var_dump(unserialize($serializedData));The above example will output:
output
Time to `Drink a cup of coffee`:
object(CustomDateTimeImmutable)#1 (3) {
["date"]=>
string(26) "2025-03-27 00:00:00.000000"
["timezone_type"]=>
int(1)
["timezone"]=>
string(6) "+00:00"
}Notes
Warning
An Error is thrown when attempting to unserialize a custom DateTime object if __serialize() is defined but __unserialize() is missing.
See Also
DateTime::__serialize