reference/datetime/datetimeinterface.xml
9eb4a46bba05da229be4c8f7a3cb64702e1a2f95
...
...
@@ -1,6 +1,5 @@
1
1
<?xml version="1.0" encoding="utf-8"?>
2
2
<!-- $Revision$ -->
3
-

4
3
<phpdoc:classref xml:id="class.datetimeinterface" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
5
4

6
5
<title>The DateTimeInterface interface</title>
...
...
@@ -12,35 +11,306 @@
12
11
<section xml:id="datetimeinterface.intro">
13
12
&reftitle.intro;
14
13
<para>
15
-
DateTimeInterface is meant so that both DateTime and DateTimeImmutable can
16
-
be type hinted for. It is not possible to implement this interface with
17
-
userland classes.
14
+
<interfacename>DateTimeInterface</interfacename> was created
15
+
so that parameter, return, or property type declarations may accept either
16
+
<classname>DateTimeImmutable</classname> or <classname>DateTime</classname>
17
+
as a value. It is not possible to
18
+
implement this interface with userland classes.
19
+
</para>
20
+
<para>
21
+
Common constants that allow for formatting
22
+
<classname>DateTimeImmutable</classname> or
23
+
<classname>DateTime</classname> objects through
24
+
<methodname>DateTimeImmutable::format</methodname> and
25
+
<methodname>DateTime::format</methodname> are also defined on this
26
+
interface.
18
27
</para>
19
28
</section>
20
29
<!-- }}} -->
21
30

22
31
<section xml:id="datetimeinterface.synopsis">
23
-
&reftitle.classsynopsis;
32
+
&reftitle.interfacesynopsis;
24
33

25
34
<!-- {{{ Synopsis -->
26
-
<classsynopsis>
27
-
<ooclass><classname>DateTimeInterface</classname></ooclass>
28
-

29
-
<!-- {{{ Class synopsis -->
30
-
<classsynopsisinfo>
31
-
<ooclass>
32
-
<classname>DateTimeInterface</classname>
33
-
</ooclass>
34
-
</classsynopsisinfo>
35
-
<!-- }}} -->
35
+
<classsynopsis class="interface">
36
+
<oointerface>
37
+
<interfacename>DateTimeInterface</interfacename>
38
+
</oointerface>
39
+

40
+
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
41
+
<fieldsynopsis>
42
+
<modifier>public</modifier>
43
+
<modifier>const</modifier>
44
+
<type>string</type>
45
+
<varname linkend="datetimeinterface.constants.atom">DateTimeInterface::ATOM</varname>
46
+
<initializer>"Y-m-d\\TH:i:sP"</initializer>
47
+
</fieldsynopsis>
48
+
<fieldsynopsis>
49
+
<modifier>public</modifier>
50
+
<modifier>const</modifier>
51
+
<type>string</type>
52
+
<varname linkend="datetimeinterface.constants.cookie">DateTimeInterface::COOKIE</varname>
53
+
<initializer>"l, d-M-Y H:i:s T"</initializer>
54
+
</fieldsynopsis>
55
+
<fieldsynopsis>
56
+
<modifier>public</modifier>
57
+
<modifier>const</modifier>
58
+
<type>string</type>
59
+
<varname linkend="datetimeinterface.constants.iso8601">DateTimeInterface::ISO8601</varname>
60
+
<initializer>"Y-m-d\\TH:i:sO"</initializer>
61
+
</fieldsynopsis>
62
+
<fieldsynopsis>
63
+
<modifier>public</modifier>
64
+
<modifier>const</modifier>
65
+
<type>string</type>
66
+
<varname linkend="datetimeinterface.constants.iso8601-expanded">DateTimeInterface::ISO8601_EXPANDED</varname>
67
+
<initializer>"X-m-d\\TH:i:sP"</initializer>
68
+
</fieldsynopsis>
69
+
<fieldsynopsis>
70
+
<modifier>public</modifier>
71
+
<modifier>const</modifier>
72
+
<type>string</type>
73
+
<varname linkend="datetimeinterface.constants.rfc822">DateTimeInterface::RFC822</varname>
74
+
<initializer>"D, d M y H:i:s O"</initializer>
75
+
</fieldsynopsis>
76
+
<fieldsynopsis>
77
+
<modifier>public</modifier>
78
+
<modifier>const</modifier>
79
+
<type>string</type>
80
+
<varname linkend="datetimeinterface.constants.rfc850">DateTimeInterface::RFC850</varname>
81
+
<initializer>"l, d-M-y H:i:s T"</initializer>
82
+
</fieldsynopsis>
83
+
<fieldsynopsis>
84
+
<modifier>public</modifier>
85
+
<modifier>const</modifier>
86
+
<type>string</type>
87
+
<varname linkend="datetimeinterface.constants.rfc1036">DateTimeInterface::RFC1036</varname>
88
+
<initializer>"D, d M y H:i:s O"</initializer>
89
+
</fieldsynopsis>
90
+
<fieldsynopsis>
91
+
<modifier>public</modifier>
92
+
<modifier>const</modifier>
93
+
<type>string</type>
94
+
<varname linkend="datetimeinterface.constants.rfc1123">DateTimeInterface::RFC1123</varname>
95
+
<initializer>"D, d M Y H:i:s O"</initializer>
96
+
</fieldsynopsis>
97
+
<fieldsynopsis>
98
+
<modifier>public</modifier>
99
+
<modifier>const</modifier>
100
+
<type>string</type>
101
+
<varname linkend="datetimeinterface.constants.rfc7231">DateTimeInterface::RFC7231</varname>
102
+
<initializer>"D, d M Y H:i:s \\G\\M\\T"</initializer>
103
+
</fieldsynopsis>
104
+
<fieldsynopsis>
105
+
<modifier>public</modifier>
106
+
<modifier>const</modifier>
107
+
<type>string</type>
108
+
<varname linkend="datetimeinterface.constants.rfc2822">DateTimeInterface::RFC2822</varname>
109
+
<initializer>"D, d M Y H:i:s O"</initializer>
110
+
</fieldsynopsis>
111
+
<fieldsynopsis>
112
+
<modifier>public</modifier>
113
+
<modifier>const</modifier>
114
+
<type>string</type>
115
+
<varname linkend="datetimeinterface.constants.rfc3339">DateTimeInterface::RFC3339</varname>
116
+
<initializer>"Y-m-d\\TH:i:sP"</initializer>
117
+
</fieldsynopsis>
118
+
<fieldsynopsis>
119
+
<modifier>public</modifier>
120
+
<modifier>const</modifier>
121
+
<type>string</type>
122
+
<varname linkend="datetimeinterface.constants.rfc3339-extended">DateTimeInterface::RFC3339_EXTENDED</varname>
123
+
<initializer>"Y-m-d\\TH:i:s.vP"</initializer>
124
+
</fieldsynopsis>
125
+
<fieldsynopsis>
126
+
<modifier>public</modifier>
127
+
<modifier>const</modifier>
128
+
<type>string</type>
129
+
<varname linkend="datetimeinterface.constants.rss">DateTimeInterface::RSS</varname>
130
+
<initializer>"D, d M Y H:i:s O"</initializer>
131
+
</fieldsynopsis>
132
+
<fieldsynopsis>
133
+
<modifier>public</modifier>
134
+
<modifier>const</modifier>
135
+
<type>string</type>
136
+
<varname linkend="datetimeinterface.constants.w3c">DateTimeInterface::W3C</varname>
137
+
<initializer>"Y-m-d\\TH:i:sP"</initializer>
138
+
</fieldsynopsis>
36
139

37
140
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
38
-
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetimeinterface')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='DateTimeInterface'])" />
141
+
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetimeinterface')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='DateTimeInterface'])">
142
+
<xi:fallback/>
143
+
</xi:include>
39
144
</classsynopsis>
40
145
<!-- }}} -->
41
146

42
147
</section>
43
148

149
+
<!-- {{{ DateTimeInterface constants -->
150
+
<section xml:id="datetimeinterface.constants.types">
151
+
&reftitle.constants;
152
+
<variablelist>
153
+
<varlistentry xml:id="datetimeinterface.constants.atom">
154
+
<term><constant>DateTimeInterface::ATOM</constant></term>
155
+
<term><constant>DATE_ATOM</constant></term>
156
+
<listitem>
157
+
<simpara>
158
+
Atom (example: 2005-08-15T15:52:01+00:00)
159
+
</simpara>
160
+
</listitem>
161
+
</varlistentry>
162
+

163
+
<varlistentry xml:id="datetimeinterface.constants.cookie">
164
+
<term><constant>DateTimeInterface::COOKIE</constant></term>
165
+
<term><constant>DATE_COOKIE</constant></term>
166
+
<listitem>
167
+
<simpara>
168
+
HTTP Cookies (example: Monday, 15-Aug-2005 15:52:01 UTC)
169
+
</simpara>
170
+
</listitem>
171
+
</varlistentry>
172
+

173
+
<varlistentry xml:id="datetimeinterface.constants.iso8601">
174
+
<term><constant>DateTimeInterface::ISO8601</constant></term>
175
+
<term><constant>DATE_ISO8601</constant></term>
176
+
<listitem>
177
+
<simpara>
178
+
ISO-8601 (example: 2005-08-15T15:52:01+0000)
179
+
</simpara>
180
+
<note>
181
+
<simpara>
182
+
This format is not compatible with ISO-8601, but is left this way for
183
+
backward compatibility reasons. Use
184
+
<constant>DateTimeInterface::ISO8601_EXPANDED</constant>,
185
+
<constant>DateTimeInterface::ATOM</constant> for compatibility with ISO-8601
186
+
instead. (ref ISO8601:2004 section 4.3.3 clause d)
187
+
</simpara>
188
+
</note>
189
+
</listitem>
190
+
</varlistentry>
191
+

192
+
<varlistentry xml:id="datetimeinterface.constants.iso8601-expanded">
193
+
<term><constant>DateTimeInterface::ISO8601_EXPANDED</constant></term>
194
+
<term><constant>DATE_ISO8601_EXPANDED</constant></term>
195
+
<listitem>
196
+
<simpara>
197
+
ISO-8601 Expanded (example: +10191-07-26T08:59:52+01:00)
198
+
</simpara>
199
+
<note>
200
+
<simpara>
201
+
This format allows for year ranges outside of ISO-8601's normal range
202
+
of <literal>0000</literal>-<literal>9999</literal> by always
203
+
including a sign character. It also addresses that that timezone part
204
+
(<literal>+01:00</literal>) is compatible with ISO-8601.
205
+
</simpara>
206
+
</note>
207
+
</listitem>
208
+
</varlistentry>
209
+

210
+
<varlistentry xml:id="datetimeinterface.constants.rfc822">
211
+
<term><constant>DateTimeInterface::RFC822</constant></term>
212
+
<term><constant>DATE_RFC822</constant></term>
213
+
<listitem>
214
+
<simpara>
215
+
RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000)
216
+
</simpara>
217
+
</listitem>
218
+
</varlistentry>
219
+

220
+
<varlistentry xml:id="datetimeinterface.constants.rfc850">
221
+
<term><constant>DateTimeInterface::RFC850</constant></term>
222
+
<term><constant>DATE_RFC850</constant></term>
223
+
<listitem>
224
+
<simpara>
225
+
RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC)
226
+
</simpara>
227
+
</listitem>
228
+
</varlistentry>
229
+

230
+
<varlistentry xml:id="datetimeinterface.constants.rfc1036">
231
+
<term><constant>DateTimeInterface::RFC1036</constant></term>
232
+
<term><constant>DATE_RFC1036</constant></term>
233
+
<listitem>
234
+
<simpara>
235
+
RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000)
236
+
</simpara>
237
+
</listitem>
238
+
</varlistentry>
239
+

240
+
<varlistentry xml:id="datetimeinterface.constants.rfc1123">
241
+
<term><constant>DateTimeInterface::RFC1123</constant></term>
242
+
<term><constant>DATE_RFC1123</constant></term>
243
+
<listitem>
244
+
<simpara>
245
+
RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000)
246
+
</simpara>
247
+
</listitem>
248
+
</varlistentry>
249
+

250
+
<varlistentry xml:id="datetimeinterface.constants.rfc7231">
251
+
<term><constant>DateTimeInterface::RFC7231</constant></term>
252
+
<term><constant>DATE_RFC7231</constant></term>
253
+
<listitem>
254
+
<simpara>
255
+
RFC 7231 (since PHP 7.0.19 and 7.1.5) (example: Sat, 30 Apr 2016 17:52:13 GMT)
256
+
</simpara>
257
+
</listitem>
258
+
</varlistentry>
259
+

260
+
<varlistentry xml:id="datetimeinterface.constants.rfc2822">
261
+
<term><constant>DateTimeInterface::RFC2822</constant></term>
262
+
<term><constant>DATE_RFC2822</constant></term>
263
+
<listitem>
264
+
<simpara>
265
+
RFC 2822 (example: Mon, 15 Aug 2005 15:52:01 +0000)
266
+
</simpara>
267
+
</listitem>
268
+
</varlistentry>
269
+

270
+
<varlistentry xml:id="datetimeinterface.constants.rfc3339">
271
+
<term><constant>DateTimeInterface::RFC3339</constant></term>
272
+
<term><constant>DATE_RFC3339</constant></term>
273
+
<listitem>
274
+
<simpara>
275
+
Same as <constant>DATE_ATOM</constant>
276
+
</simpara>
277
+
</listitem>
278
+
</varlistentry>
279
+

280
+
<varlistentry xml:id="datetimeinterface.constants.rfc3339-extended">
281
+
<term><constant>DateTimeInterface::RFC3339_EXTENDED</constant></term>
282
+
<term><constant>DATE_RFC3339_EXTENDED</constant></term>
283
+
<listitem>
284
+
<simpara>
285
+
RFC 3339 EXTENDED format (example: 2005-08-15T15:52:01.000+00:00)
286
+
</simpara>
287
+
</listitem>
288
+
</varlistentry>
289
+

290
+
<varlistentry xml:id="datetimeinterface.constants.rss">
291
+
<term><constant>DateTimeInterface::RSS</constant></term>
292
+
<term><constant>DATE_RSS</constant></term>
293
+
<listitem>
294
+
<simpara>
295
+
RSS (example: Mon, 15 Aug 2005 15:52:01 +0000)
296
+
</simpara>
297
+
</listitem>
298
+
</varlistentry>
299
+

300
+
<varlistentry xml:id="datetimeinterface.constants.w3c">
301
+
<term><constant>DateTimeInterface::W3C</constant></term>
302
+
<term><constant>DATE_W3C</constant></term>
303
+
<listitem>
304
+
<simpara>
305
+
World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)
306
+
</simpara>
307
+
</listitem>
308
+
</varlistentry>
309
+

310
+
</variablelist>
311
+
</section>
312
+
<!-- }}} -->
313
+

44
314
<section role="changelog" xml:id="datetimeinterface.changelog"><!-- {{{ -->
45
315
&reftitle.changelog;
46
316
<para>
...
...
@@ -54,11 +324,17 @@
54
324
</thead>
55
325
<tbody>
56
326
<row>
57
-
<entry>5.5.8</entry>
327
+
<entry>8.2.0</entry>
328
+
<entry>
329
+
The constant <constant linkend="datetimeinterface.constants.iso8601-expanded">DateTimeInterface::ISO8601_EXPANDED</constant>
330
+
was added.
331
+
</entry>
332
+
</row>
333
+
<row>
334
+
<entry>7.2.0</entry>
58
335
<entry>
59
-
Trying to implement <classname>DateTimeInterface</classname> raises a
60
-
fatal error now. Formerly implementing the interface didn't raise an
61
-
error, but the behavior was erroneous.
336
+
The class constants of <classname>DateTime</classname> are now defined
337
+
on <interfacename>DateTimeInterface</interfacename>.
62
338
</entry>
63
339
</row>
64
340
</tbody>
...
...
@@ -72,7 +348,6 @@
72
348
&reference.datetime.entities.datetimeinterface;
73
349

74
350
</phpdoc:classref>
75
-

76
351
<!-- Keep this comment at the end of the file
77
352
Local variables:
78
353
mode: sgml
79
354