Skip to content

Commit 053ae3f

Browse files
authored
Add DateTime related serialize/unserialize methods (#4410)
1 parent 18d46a2 commit 053ae3f

File tree

3 files changed

+201
-0
lines changed

3 files changed

+201
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- $Revision$ -->
3+
<refentry xml:id="datetime.serialize" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
4+
<refnamediv>
5+
<refname>DateTime::__serialize</refname>
6+
<refname>DateTimeImmutable::__serialize</refname>
7+
<refname>DateTimeInterface::__serialize</refname>
8+
<refpurpose>Serialize a DateTime</refpurpose>
9+
</refnamediv>
10+
11+
<refsect1 role="description">
12+
&reftitle.description;
13+
<methodsynopsis role="DateTime">
14+
<modifier>public</modifier> <type>array</type><methodname>DateTime::__serialize</methodname>
15+
<void/>
16+
</methodsynopsis>
17+
<methodsynopsis role="DateTimeImmutable">
18+
<modifier>public</modifier> <type>array</type><methodname>DateTimeImmutable::__serialize</methodname>
19+
<void/>
20+
</methodsynopsis>
21+
<methodsynopsis role="DateTimeInterface">
22+
<modifier>public</modifier> <type>array</type><methodname>DateTimeInterface::__serialize</methodname>
23+
<void/>
24+
</methodsynopsis>
25+
<para>
26+
The <link linkend="object.serialize">__serialize()</link> handler.
27+
</para>
28+
</refsect1>
29+
30+
<refsect1 role="parameters">
31+
&reftitle.parameters;
32+
&no.function.parameters;
33+
</refsect1>
34+
35+
<refsect1 role="returnvalues">
36+
&reftitle.returnvalues;
37+
<para>
38+
The serialized representation of the
39+
<classname>DateTime</classname> object.
40+
</para>
41+
</refsect1>
42+
43+
<refsect1 role="examples">
44+
&reftitle.examples;
45+
<example>
46+
<title><function>DateTime::serialize</function> example</title>
47+
<programlisting role="php">
48+
<![CDATA[
49+
<?php
50+
$date = new DateTime('2025-03-27');
51+
var_dump(serialize($date));
52+
?>
53+
]]>
54+
</programlisting>
55+
&examples.outputs;
56+
<screen>
57+
<![CDATA[
58+
string(114) "O:8:"DateTime":3:{s:4:"date";s:26:"2025-03-27 00:00:00.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}"
59+
]]>
60+
</screen>
61+
</example>
62+
</refsect1>
63+
64+
<refsect1 role="seealso">
65+
&reftitle.seealso;
66+
<simplelist>
67+
<member><methodname>DateTime::__unserialize</methodname></member>
68+
</simplelist>
69+
</refsect1>
70+
</refentry>
71+
<!-- Keep this comment at the end of the file
72+
Local variables:
73+
mode: sgml
74+
sgml-omittag:t
75+
sgml-shorttag:t
76+
sgml-minimize-attributes:nil
77+
sgml-always-quote-attributes:t
78+
sgml-indent-step:1
79+
sgml-indent-data:t
80+
indent-tabs-mode:nil
81+
sgml-parent-document:nil
82+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
83+
sgml-exposed-tags:nil
84+
sgml-local-catalogs:nil
85+
sgml-local-ecat-files:nil
86+
End:
87+
vim600: syn=xml fen fdm=syntax fdl=2 si
88+
vim: et tw=78 syn=sgml
89+
vi: ts=1 sw=1
90+
-->
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- $Revision$ -->
3+
<refentry xml:id="datetime.unserialize" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
4+
<refnamediv>
5+
<refname>DateTime::__unserialize</refname>
6+
<refname>DateTimeImmutable::__unserialize</refname>
7+
<refname>DateTimeInterface::__unserialize</refname>
8+
<refpurpose>Unserialize an Datetime</refpurpose>
9+
</refnamediv>
10+
11+
<refsect1 role="description">
12+
&reftitle.description;
13+
<methodsynopsis role="DateTime">
14+
<modifier>public</modifier> <type>void</type><methodname>DateTime::__unserialize</methodname>
15+
<methodparam><type>array</type><parameter>data</parameter></methodparam>
16+
</methodsynopsis>
17+
<methodsynopsis role="DateTimeImmutable">
18+
<modifier>public</modifier> <type>void</type><methodname>DateTimeImmutable::__unserialize</methodname>
19+
<methodparam><type>array</type><parameter>data</parameter></methodparam>
20+
</methodsynopsis>
21+
<methodsynopsis role="DateTimeInterface">
22+
<modifier>public</modifier> <type>void</type><methodname>DateTimeInterface::__unserialize</methodname>
23+
<methodparam><type>array</type><parameter>data</parameter></methodparam>
24+
</methodsynopsis>
25+
<para>
26+
The <link linkend="object.unserialize">__unserialize()</link> handler.
27+
</para>
28+
</refsect1>
29+
30+
<refsect1 role="parameters">
31+
&reftitle.parameters;
32+
<variablelist>
33+
<varlistentry>
34+
<term><parameter>data</parameter></term>
35+
<listitem>
36+
<para>
37+
The serialized <classname>DateTime</classname>.
38+
</para>
39+
</listitem>
40+
</varlistentry>
41+
</variablelist>
42+
</refsect1>
43+
44+
<refsect1 role="returnvalues">
45+
&reftitle.returnvalues;
46+
<para>
47+
The <classname>DateTime</classname> object.
48+
</para>
49+
</refsect1>
50+
51+
<refsect1 role="examples">
52+
&reftitle.examples;
53+
<example>
54+
<title><function>DateTime::unserialize</function> example</title>
55+
<programlisting role="php">
56+
<![CDATA[
57+
<?php
58+
$serializedDate = 'O:8:"DateTime":3:{s:4:"date";s:26:"2025-03-27 00:00:00.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}';
59+
var_dump(unserialize($serializedDate));
60+
?>
61+
]]>
62+
</programlisting>
63+
&examples.outputs;
64+
<screen>
65+
<![CDATA[
66+
object(DateTime)#1 (3) {
67+
["date"]=>
68+
string(26) "2025-03-27 00:00:00.000000"
69+
["timezone_type"]=>
70+
int(3)
71+
["timezone"]=>
72+
string(3) "UTC"
73+
}
74+
]]>
75+
</screen>
76+
</example>
77+
</refsect1>
78+
79+
<refsect1 role="seealso">
80+
&reftitle.seealso;
81+
<simplelist>
82+
<member><methodname>DateTime::__serialize</methodname></member>
83+
</simplelist>
84+
</refsect1>
85+
</refentry>
86+
<!-- Keep this comment at the end of the file
87+
Local variables:
88+
mode: sgml
89+
sgml-omittag:t
90+
sgml-shorttag:t
91+
sgml-minimize-attributes:nil
92+
sgml-always-quote-attributes:t
93+
sgml-indent-step:1
94+
sgml-indent-data:t
95+
indent-tabs-mode:nil
96+
sgml-parent-document:nil
97+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
98+
sgml-exposed-tags:nil
99+
sgml-local-catalogs:nil
100+
sgml-local-ecat-files:nil
101+
End:
102+
vim600: syn=xml fen fdm=syntax fdl=2 si
103+
vim: et tw=78 syn=sgml
104+
vi: ts=1 sw=1
105+
-->

reference/datetime/versions.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
<function name="datetime" from="PHP 5 &gt;= 5.2.0, PHP 7, PHP 8"/>
99
<function name="datetime::__construct" from="PHP 5 &gt;= 5.2.0, PHP 7, PHP 8"/>
1010
<function name="datetime::__set_state" from="PHP 5 &gt;= 5.3.0, PHP 7, PHP 8"/>
11+
<function name="datetime::__serialize" from="PHP 8 &gt;= 8.2.0"/>
12+
<function name="datetime::__unserialize" from="PHP 8 &gt;= 8.2.0"/>
1113
<function name="datetime::__wakeup" from="PHP 5 &gt;= 5.3.0, PHP 7, PHP 8"/>
1214
<function name="datetime::add" from="PHP 5 &gt;= 5.3.0, PHP 7, PHP 8"/>
1315
<function name="datetime::createfromformat" from="PHP 5 &gt;= 5.3.0, PHP 7, PHP 8"/>
@@ -28,6 +30,8 @@
2830
<function name="datetime::sub" from="PHP 5 &gt;= 5.3.0, PHP 7, PHP 8"/>
2931

3032
<function name="datetimeinterface" from="PHP 5 &gt;= 5.5.0, PHP 7, PHP 8"/>
33+
<function name="datetimeinterface::__serialize" from="PHP 8 &gt;= 8.2.0"/>
34+
<function name="datetimeinterface::__unserialize" from="PHP 8 &gt;= 8.2.0"/>
3135
<function name="datetimeinterface::__wakeup" from="PHP 5 &gt;= 5.2.0, PHP 7, PHP 8"/>
3236
<function name="datetimeinterface::diff" from="PHP 5 &gt;= 5.3.0, PHP 7, PHP 8"/>
3337
<function name="datetimeinterface::format" from="PHP 5 &gt;= 5.2.0, PHP 7, PHP 8"/>
@@ -37,6 +41,8 @@
3741

3842
<function name="datetimeimmutable" from="PHP 5 &gt;= 5.5.0, PHP 7, PHP 8"/>
3943
<function name="datetimeimmutable::__construct" from="PHP 5 &gt;= 5.5.0, PHP 7, PHP 8"/>
44+
<function name="datetimeimmutable::__serialize" from="PHP 8 &gt;= 8.2.0"/>
45+
<function name="datetimeimmutable::__unserialize" from="PHP 8 &gt;= 8.2.0"/>
4046
<function name="datetimeimmutable::__set_state" from="PHP 5 &gt;= 5.5.0, PHP 7, PHP 8"/>
4147
<function name="datetimeimmutable::__wakeup" from="PHP 5 &gt;= 5.5.0, PHP 7, PHP 8"/>
4248
<function name="datetimeimmutable::createfromformat" from="PHP 5 &gt;= 5.5.0, PHP 7, PHP 8"/>

0 commit comments

Comments
 (0)