php8.5
Home/ Manual/ datetime / datetimeinterface/ DateTime::__serialize

DateTime::__serialize

PHP function Edit on GitHub ✎

(PHP 8 >= 8.2.0)

Serialize a DateTime

Description

DateTime::__serialize(): array
DateTimeImmutable::__serialize(): array
DateTimeInterface::__serialize(): array

The __serialize() handler.

Parameters Parameters

Return Values

The serialized representation of the DateTime object.

Examples

DateTime::__serialize example

php
<?php

class CustomDateTimeImmutable extends DateTimeImmutable
{
    #[\Override]
    public function __serialize(): array
    {
        return [
            'date' => $this->format(DateTimeInterface::W3C),
            'timestamp' => $this->getTimestamp(),
            'timezone' => $this->getTimeZone()->getName(),
            'to' => 'Drink a cup of coffee',
        ];
    }
}

$date = new CustomDateTimeImmutable('2025-03-27');
var_dump(serialize($date));

The above example will output:

output
string(171) "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";}"

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::__unserialize

Source: reference/datetime/datetimeinterface/serialize.xml · from the official PHP manual (php/doc-en)