reference/datetime/datetimeinterface.xml
9eb4a46bba05da229be4c8f7a3cb64702e1a2f95
...
...
@@ -13,10 +13,18 @@
13
13
<para>
14
14
<interfacename>DateTimeInterface</interfacename> was created
15
15
so that parameter, return, or property type declarations may accept either
16
-
<classname>DateTime</classname> or <classname>DateTimeImmutable</classname>
16
+
<classname>DateTimeImmutable</classname> or <classname>DateTime</classname>
17
17
as a value. It is not possible to
18
18
implement this interface with userland classes.
19
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.
27
+
</para>
20
28
</section>
21
29
<!-- }}} -->
22
30

...
...
@@ -24,95 +32,109 @@
24
32
&reftitle.interfacesynopsis;
25
33

26
34
<!-- {{{ Synopsis -->
27
-
<classsynopsis>
28
-
<ooclass>
29
-
<classname>DateTimeInterface</classname>
30
-
</ooclass>
31
-

32
-
<classsynopsisinfo>
33
-
<oointerface>
34
-
<interfacename>DateTimeInterface</interfacename>
35
-
</oointerface>
36
-
</classsynopsisinfo>
35
+
<classsynopsis class="interface">
36
+
<oointerface>
37
+
<interfacename>DateTimeInterface</interfacename>
38
+
</oointerface>
37
39

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

118
140
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
...
...
@@ -125,10 +147,10 @@
125
147
</section>
126
148

127
149
<!-- {{{ DateTimeInterface constants -->
128
-
<section xml:id="datetime.constants.types">
150
+
<section xml:id="datetimeinterface.constants.types">
129
151
&reftitle.constants;
130
152
<variablelist>
131
-
<varlistentry xml:id="datetime.constants.atom">
153
+
<varlistentry xml:id="datetimeinterface.constants.atom">
132
154
<term><constant>DateTimeInterface::ATOM</constant></term>
133
155
<term><constant>DATE_ATOM</constant></term>
134
156
<listitem>
...
...
@@ -138,7 +160,7 @@
138
160
</listitem>
139
161
</varlistentry>
140
162

141
-
<varlistentry xml:id="datetime.constants.cookie">
163
+
<varlistentry xml:id="datetimeinterface.constants.cookie">
142
164
<term><constant>DateTimeInterface::COOKIE</constant></term>
143
165
<term><constant>DATE_COOKIE</constant></term>
144
166
<listitem>
...
...
@@ -148,7 +170,7 @@
148
170
</listitem>
149
171
</varlistentry>
150
172

151
-
<varlistentry xml:id="datetime.constants.iso8601">
173
+
<varlistentry xml:id="datetimeinterface.constants.iso8601">
152
174
<term><constant>DateTimeInterface::ISO8601</constant></term>
153
175
<term><constant>DATE_ISO8601</constant></term>
154
176
<listitem>
...
...
@@ -158,15 +180,34 @@
158
180
<note>
159
181
<simpara>
160
182
This format is not compatible with ISO-8601, but is left this way for
161
-
backward compatibility reasons. Use <constant>DateTime::ATOM</constant>
162
-
or <constant>DATE_ATOM</constant> for compatibility with ISO-8601
163
-
instead.
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)
164
187
</simpara>
165
188
</note>
166
189
</listitem>
167
190
</varlistentry>
168
191

169
-
<varlistentry xml:id="datetime.constants.rfc822">
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">
170
211
<term><constant>DateTimeInterface::RFC822</constant></term>
171
212
<term><constant>DATE_RFC822</constant></term>
172
213
<listitem>
...
...
@@ -176,7 +217,7 @@
176
217
</listitem>
177
218
</varlistentry>
178
219

179
-
<varlistentry xml:id="datetime.constants.rfc850">
220
+
<varlistentry xml:id="datetimeinterface.constants.rfc850">
180
221
<term><constant>DateTimeInterface::RFC850</constant></term>
181
222
<term><constant>DATE_RFC850</constant></term>
182
223
<listitem>
...
...
@@ -186,7 +227,7 @@
186
227
</listitem>
187
228
</varlistentry>
188
229

189
-
<varlistentry xml:id="datetime.constants.rfc1036">
230
+
<varlistentry xml:id="datetimeinterface.constants.rfc1036">
190
231
<term><constant>DateTimeInterface::RFC1036</constant></term>
191
232
<term><constant>DATE_RFC1036</constant></term>
192
233
<listitem>
...
...
@@ -196,7 +237,7 @@
196
237
</listitem>
197
238
</varlistentry>
198
239

199
-
<varlistentry xml:id="datetime.constants.rfc1123">
240
+
<varlistentry xml:id="datetimeinterface.constants.rfc1123">
200
241
<term><constant>DateTimeInterface::RFC1123</constant></term>
201
242
<term><constant>DATE_RFC1123</constant></term>
202
243
<listitem>
...
...
@@ -206,7 +247,7 @@
206
247
</listitem>
207
248
</varlistentry>
208
249

209
-
<varlistentry xml:id="datetime.constants.rfc7231">
250
+
<varlistentry xml:id="datetimeinterface.constants.rfc7231">
210
251
<term><constant>DateTimeInterface::RFC7231</constant></term>
211
252
<term><constant>DATE_RFC7231</constant></term>
212
253
<listitem>
...
...
@@ -216,7 +257,7 @@
216
257
</listitem>
217
258
</varlistentry>
218
259

219
-
<varlistentry xml:id="datetime.constants.rfc2822">
260
+
<varlistentry xml:id="datetimeinterface.constants.rfc2822">
220
261
<term><constant>DateTimeInterface::RFC2822</constant></term>
221
262
<term><constant>DATE_RFC2822</constant></term>
222
263
<listitem>
...
...
@@ -226,7 +267,7 @@
226
267
</listitem>
227
268
</varlistentry>
228
269

229
-
<varlistentry xml:id="datetime.constants.rfc3339">
270
+
<varlistentry xml:id="datetimeinterface.constants.rfc3339">
230
271
<term><constant>DateTimeInterface::RFC3339</constant></term>
231
272
<term><constant>DATE_RFC3339</constant></term>
232
273
<listitem>
...
...
@@ -236,7 +277,7 @@
236
277
</listitem>
237
278
</varlistentry>
238
279

239
-
<varlistentry xml:id="datetime.constants.rfc3339_extended">
280
+
<varlistentry xml:id="datetimeinterface.constants.rfc3339-extended">
240
281
<term><constant>DateTimeInterface::RFC3339_EXTENDED</constant></term>
241
282
<term><constant>DATE_RFC3339_EXTENDED</constant></term>
242
283
<listitem>
...
...
@@ -246,7 +287,7 @@
246
287
</listitem>
247
288
</varlistentry>
248
289

249
-
<varlistentry xml:id="datetime.constants.rss">
290
+
<varlistentry xml:id="datetimeinterface.constants.rss">
250
291
<term><constant>DateTimeInterface::RSS</constant></term>
251
292
<term><constant>DATE_RSS</constant></term>
252
293
<listitem>
...
...
@@ -256,7 +297,7 @@
256
297
</listitem>
257
298
</varlistentry>
258
299

259
-
<varlistentry xml:id="datetime.constants.w3c">
300
+
<varlistentry xml:id="datetimeinterface.constants.w3c">
260
301
<term><constant>DateTimeInterface::W3C</constant></term>
261
302
<term><constant>DATE_W3C</constant></term>
262
303
<listitem>
...
...
@@ -283,10 +324,17 @@
283
324
</thead>
284
325
<tbody>
285
326
<row>
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>
286
334
<entry>7.2.0</entry>
287
335
<entry>
288
336
The class constants of <classname>DateTime</classname> are now defined
289
-
on <classname>DateTimeInterface</classname>.
337
+
on <interfacename>DateTimeInterface</interfacename>.
290
338
</entry>
291
339
</row>
292
340
</tbody>
293
341