diff --git a/reference/datetime/datetimeinterface/serialize.xml b/reference/datetime/datetimeinterface/serialize.xml index 5615dca18157..0a6934b9b630 100644 --- a/reference/datetime/datetimeinterface/serialize.xml +++ b/reference/datetime/datetimeinterface/serialize.xml @@ -43,24 +43,51 @@ &reftitle.examples; - <function>DateTime::serialize</function> example + <methodname>DateTime::__serialize</methodname> example $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)); + ?> ]]> &examples.outputs; + + &reftitle.notes; + + + An Error is thrown when attempting to unserialize a custom + DateTime object if the __serialize() is + defined but the __unserialize() is missing. + + + + &reftitle.seealso; diff --git a/reference/datetime/datetimeinterface/unserialize.xml b/reference/datetime/datetimeinterface/unserialize.xml index f60f36c4bb9e..d33005a44b91 100644 --- a/reference/datetime/datetimeinterface/unserialize.xml +++ b/reference/datetime/datetimeinterface/unserialize.xml @@ -44,19 +44,33 @@ &reftitle.returnvalues; - The DateTime object. + &return.void; &reftitle.examples; - <function>DateTime::unserialize</function> example + <methodname>DateTime::__unserialize</methodname> example __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)); + ?> ]]> @@ -76,6 +90,17 @@ object(DateTime)#1 (3) { + + &reftitle.notes; + + + An Error is thrown when attempting to unserialize a custom + DateTime object if the __serialize() is + defined but the __unserialize() is missing. + + + + &reftitle.seealso;