-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathconstruct.xml
181 lines (169 loc) · 5.25 KB
/
construct.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: d9ac376dbee6e45ef775059456caf0ec348ada6a Maintainer: girgias Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="datetimezone.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>DateTimeZone::__construct</refname>
<refname>timezone_open</refname>
<refpurpose>Crée un nouvel objet <classname>DateTimeZone</classname></refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>&style.oop;</para>
<constructorsynopsis role="DateTimeZone">
<modifier>public</modifier> <methodname>DateTimeZone::__construct</methodname>
<methodparam><type>string</type><parameter>timezone</parameter></methodparam>
</constructorsynopsis>
<para>&style.procedural;</para>
<methodsynopsis>
<type class="union"><type>DateTimeZone</type><type>false</type></type><methodname>timezone_open</methodname>
<methodparam><type>string</type><parameter>timezone</parameter></methodparam>
</methodsynopsis>
<para>
Crée un nouvel objet <classname>DateTimeZone</classname>.
</para>
<para>
Un objet DateTimeZone fournit l'accès à trois types différents de règles
de fuseau horaires : un décalage UTC (type <literal>1</literal>), une
abréviation de fuseau horaire (type <literal>2</literal>), et un
<link linkend="timezones">identifiant de fuseau horaire</link> tel que
publié dans la base de donnée de fuseau horaire IANA (type <literal>3</literal>).
</para>
<para>
L'objet DateTimeZone peut être attaché aux objets <classname>DateTime</classname>
et <classname>DateTimeImmutable</classname> enfin d'être en mesure de rendre
le fuseau horaire encapsulé par ces objets dans un fuseau horaire local.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>timezone</parameter></term>
<listitem>
<para>
Un des <link linkend="timezones">fuseaux horaires</link> supportés,
une valeur de décalage (+0200), ou une abréviation de fuseau (BST).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne un objet <classname>DateTimeZone</classname>, en cas de succès.
&return.falseforfailure.style.procedural;.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Cette méthode lance une <classname>DateInvalidTimeZoneException</classname>
si le fuseau horaire fourni n'est pas reconnu comme un fuseau horaire valide.
Antérieur à PHP 8.3, ceci était une <exceptionname>Exception</exceptionname>.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.3.0</entry>
<entry>
Les valeurs invalides lance désormais une
<exceptionname>DateInvalidTimeZoneException</exceptionname> au lieu
d'une <exceptionname>Exception</exceptionname> générique.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Creating and attaching DateTimeZone to a DateTimeImmutable</title>
<programlisting role="php">
<![CDATA[
<?php
$d = new DateTimeImmutable("2022-06-02 15:44:48 UTC");
$timezones = [ 'Europe/London', 'GMT+04:45', '-06:00', 'CEST' ];
foreach ($timezones as $tz) {
$tzo = new DateTimeZone($tz);
$local = $d->setTimezone($tzo);
echo $local->format(DateTimeInterface::RFC2822 . ' — e'), "\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
Thu, 02 Jun 2022 16:44:48 +0100 — Europe/London
Thu, 02 Jun 2022 20:29:48 +0445 — +04:45
Thu, 02 Jun 2022 09:44:48 -0600 — -06:00
Thu, 02 Jun 2022 17:44:48 +0200 — CEST
</screen>
</example>
</para>
<para>
<example>
<title>Interception des erreurs avec <classname>DateTimeZone</classname></title>
<programlisting role="php">
<![CDATA[
<?php
// Gestion des erreurs par interception des exceptions
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');
foreach ($timezones as $tz) {
try {
$mars = new DateTimeZone($tz);
} catch(Exception $e) {
echo $e->getMessage() . '<br />';
}
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)
]]>
</screen>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->