1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 15:12:13 +01:00
Files
Louis-Arnaud 5a8f14f860 reference/datetime: fix grammar, spelling, and code examples (#2504)
- Fix plural agreements (fuseaux, secondes, contenues)
- Fix missing negation, verb, accents on capitals
- Fix code syntax error in mktime example
- Fix "levé" → "lever" du soleil
- Fix conjugations (réfèrent, fonctionneraient, peuvent)
2026-02-25 07:00:20 +01:00

334 lines
10 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 0cf48a5a4869bd8b42f84e7032076756cde6a474 Maintainer: Fan2Shrek Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="dateperiod.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>DatePeriod::__construct</refname>
<refpurpose>Crée un nouvel objet <classname>DatePeriod</classname></refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<constructorsynopsis role="DatePeriod">
<modifier>public</modifier> <methodname>DatePeriod::__construct</methodname>
<methodparam><type>DateTimeInterface</type><parameter>start</parameter></methodparam>
<methodparam><type>DateInterval</type><parameter>interval</parameter></methodparam>
<methodparam><type>int</type><parameter>recurrences</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>options</parameter><initializer>0</initializer></methodparam>
</constructorsynopsis>
<constructorsynopsis role="DatePeriod">
<modifier>public</modifier> <methodname>DatePeriod::__construct</methodname>
<methodparam><type>DateTimeInterface</type><parameter>start</parameter></methodparam>
<methodparam><type>DateInterval</type><parameter>interval</parameter></methodparam>
<methodparam><type>DateTimeInterface</type><parameter>end</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>options</parameter><initializer>0</initializer></methodparam>
</constructorsynopsis>
<warning>
<simpara>
Les constructeurs suivants ont été rendus obsolètes :
</simpara>
<constructorsynopsis role="DatePeriod">
<modifier>public</modifier> <methodname>DatePeriod::__construct</methodname>
<methodparam><type>string</type><parameter>isostr</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>options</parameter><initializer>0</initializer></methodparam>
</constructorsynopsis>
<simpara>
À la place la méthode usine <methodname>DatePeriod::createFromISO8601String</methodname>
devrait être utilisée.
</simpara>
</warning>
<para>
Crée un nouvel objet <classname>DatePeriod</classname>.
</para>
<para>
Les objets <classname>DatePeriod</classname> peuvent être utilisés comme itérateur pour
générer un certain nombre d'objets <classname>DateTimeImmutable</classname> ou
<classname>DateTime</classname> à partir d'une <parameter>start</parameter>
date (date de début), un <parameter>interval</parameter>, et une <parameter>end</parameter>
date (date de fin) ou du nombre de <parameter>recurrences</parameter>.
</para>
<para>
La classe des objets renvoyés est équivalente à la classe ancêtre
<classname>DateTimeImmutable</classname> ou <classname>DateTime</classname>
fournis par l'objet <parameter>start</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>start</parameter></term>
<listitem>
<para>
La date de début de la période. Incluse par défaut dans le jeu
de résultats.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>interval</parameter></term>
<listitem>
<para>
L'intervalle entre les récurrences de la période.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>recurrences</parameter></term>
<listitem>
<para>
Le nombre de récurrences. Doit être plus grand que <literal>0</literal>.
Le nombre de résultats renvoyés est supérieur d'une unité, car la date de
début est incluse dans le jeu de résultats par défaut.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>end</parameter></term>
<listitem>
<para>
La date de fin de la période. Non incluse par défaut dans le jeu
de résultats.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>isostr</parameter></term>
<listitem>
<para>
Un sous-ensemble de la
<link xlink:href="&url.iso-8601.repeating_intervals;">
spécification ISO 8601 de la répétition de l'intervalle</link>.
</para>
<para>
Exemples de certaines fonctionnalités de spécification d'intervalle
ISO 8601 que PHP ne prend pas en charge :
</para>
<orderedlist>
<listitem>
<simpara>
Les occurrences zéro (<literal>R0/</literal>)
</simpara>
</listitem>
<listitem>
<simpara>
Décalages horaires autres que UTC (<literal>Z</literal>), tels que <literal>+02:00</literal>.
</simpara>
</listitem>
</orderedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
Un champ de bits qui peut être utilisé pour contrôler certains
comportements avec les dates de début et de fin.
</para>
<para>
Peut être configuré à <constant>DatePeriod::EXCLUDE_START_DATE</constant>
pour exclure la date de début du jeu de dates de récursion dans
la période.
</para>
<para>
Peut être configuré à <constant>DatePeriod::INCLUDE_END_DATE</constant>
pour inclure la date de fin du jeu de dates de récursion dans
la période.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Lance une exception <classname>DateMalformedPeriodStringException</classname> lorsque le paramètre
<parameter>isostr</parameter> ne peut être analysé comme une période ISO 8601 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>
Lance désormais une
<exceptionname>DateMalformedPeriodStringException</exceptionname>
au lieu de <exceptionname>Exception</exceptionname>.
</entry>
</row>
<row>
<entry>8.2.0</entry>
<entry>
La constante <constant>DatePeriod::INCLUDE_END_DATE</constant> a été ajoutée.
</entry>
</row>
<row>
<entry>7.2.19, 7.3.6, 7.4.0</entry>
<entry>
<parameter>recurrences</parameter> doit désormais être plus grand que <literal>0</literal>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec DatePeriod</title>
<programlisting role="php">
<![CDATA[
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';
// Toutes ces périodes sont équivalentes.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);
// En parcourant l'objet DatePeriod, toutes les
// dates de la récursion pour la période seront affichées.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Deprecated: Calling DatePeriod::__construct(string $isostr, int $options = 0) is deprecated, use DatePeriod::createFromISO8601String() instead in script on line 11
2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Exemple avec DatePeriod et <constant>DatePeriod::EXCLUDE_START_DATE</constant></title>
<programlisting role="php">
<![CDATA[
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$period = new DatePeriod($start, $interval, $end,
DatePeriod::EXCLUDE_START_DATE);
// En parcourant l'objet DatePeriod,
// toutes les dates de récursion pour la période sont affichées.
// Notez que, dans ce cas, 2012-07-01 ne sera pas affiché.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
2012-07-08
2012-07-15
2012-07-22
2012-07-29
]]>
</screen>
</example>
</para>
<para>
<example>
<title>DatePeriod montrant tous les derniers jeudis du mois sur une année</title>
<programlisting role="php">
<![CDATA[
<?php
$begin = new DateTime('2021-12-31');
$end = new DateTime('2022-12-31 23:59:59');
$interval = DateInterval::createFromDateString('last thursday of next month');
$period = new DatePeriod($begin, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
foreach ($period as $dt) {
echo $dt->format('l Y-m-d'), "\n";
}
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Thursday 2022-01-27
Thursday 2022-02-24
Thursday 2022-03-31
Thursday 2022-04-28
Thursday 2022-05-26
Thursday 2022-06-30
Thursday 2022-07-28
Thursday 2022-08-25
Thursday 2022-09-29
Thursday 2022-10-27
Thursday 2022-11-24
Thursday 2022-12-29
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<simpara>
Les nombres de répétitions non liés spécifiés dans la section 4.5
"Intervalle de temps récurrent" de la norme ISO 8601 ne sont pas
supportés, c'est-à-dire ni <literal>"R/..."</literal> comme
<parameter>isostr</parameter> ni &null; comme
<parameter>end</parameter> ne fonctionneraient.
</simpara>
</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
-->