Files
doc-fr/reference/datetime/functions/date.xml
George Peter Banyard d346de054c Sync datetime docs with EN
2022-01-10 19:49:48 +00:00

252 lines
8.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9b7ab9bc8e78b1201b8b8c71eac051256d433993 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<!-- CREDITS: DavidA -->
<refentry xml:id="function.date" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>date</refname>
<refpurpose>Formate une date/heure locale</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>date</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>timestamp</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Retourne une date sous forme d'une chaîne, au format
donné par le paramètre <parameter>format</parameter>,
fournie par le paramètre <parameter>timestamp</parameter>
ou la date et l'heure courantes si aucun timestamp n'est fourni.
En d'autres termes, le paramètre <parameter>timestamp</parameter>
est optionnel et vaut par défaut la valeur de la fonction <function>time</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
Format accepté par <function>DateTimeInterface::format</function>.
</para>
</listitem>
</varlistentry>
&date.timestamp.description;
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne une date formatée. Si une valeur non numérique est utilisée
dans le paramètre <parameter>timestamp</parameter>, &false; sera
retourné et une erreur de niveau <constant>E_WARNING</constant> est émise.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
&date.timezone.errors.description;
</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.0.0</entry>
<entry>
<parameter>timestamp</parameter> est désormais nullable.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>date</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Définit le fuseau horaire par défaut à utiliser.
date_default_timezone_set('UTC');
// Affichage de quelque chose comme : Monday
echo date("l");
// Affichage de quelque chose comme : Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');
// Affiche : July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
/* utilise les constantes dans le paramètre format */
// Affichage de quelque chose comme : Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);
// Affichage de quelque chose comme : 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>
]]>
</programlisting>
</example>
</para>
<para>
Vous pouvez faire afficher un caractère spécial dans la chaîne de format
en le protégeant par un antislash. Si le caractère est lui-même une séquence
incluant un antislash, vous devrez protéger aussi l'antislash.
<example>
<title>Protection des caractères dans la fonction <function>date</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Affichage de quelque chose comme : Wednesday the 15th
echo date('l \t\h\e jS');
?>
]]>
</programlisting>
</example>
</para>
<para>
Il est possible d'utiliser <function>date</function> et
<function>mktime</function> ensemble pour générer
des dates dans le futur ou dans le passé.
<example>
<title>Exemple avec <function>date</function> et <function>mktime</function></title>
<programlisting role="php">
<![CDATA[
<?php
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
?>
]]>
</programlisting>
</example>
<note>
<para>
Cette méthode est plus sûre que simplement ajouter ou retrancher
le nombre de secondes dans une journée ou un mois à un timestamp,
à cause des heures d'hiver et d'été.
</para>
</note>
</para>
<para>
Voici maintenant quelques exemples de formatage avec
<function>date</function>. Notez que vous devriez échapper tous
les autres caractères, car s'ils ont une signification
spéciale, ils risquent de produire des effets secondaires
indésirables. Notez aussi que les versions futures de PHP
peuvent attribuer une signification à des lettres qui sont
actuellement inertes. Lorsque vous échappez les caractères,
pensez à utiliser des guillemets simples, pour que les
séquences <literal>\n</literal> ne deviennent pas des
nouvelles lignes.
<example>
<title>Exemple avec <function>date</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Aujourd'hui, le 10 Mars 2001, 5:16:18 pm, Fuseau horaire
// Mountain Standard Time (MST)
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // It is the 10th day (10ème jour du mois).
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \e\s\t\ \l\e\ \m\o\i\s'); // 17:03:18 m est le mois
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (le format DATETIME de MySQL)
?>
]]>
</programlisting>
</example>
</para>
<para>
Pour formater des dates dans d'autres langues,
<methodname>IntlDateFormatter::format</methodname>
peut être utilisé à la place de <function>date</function>.
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Pour générer un timestamp à partir d'une représentation de date,
vous pouvez utiliser la fonction <function>strtotime</function>. De plus,
certaines bases de données disposent de fonctions pour convertir leurs
propres formats de date en timestamp (par exemple,
MySQL et sa fonction <link xlink:href="&url.mysql.docs.date;">UNIX_TIMESTAMP()</link>).
</para>
</note>
<tip>
<para>
Un timestamp représentant le début de la requête est disponible dans la
variable <varname>$_SERVER['REQUEST_TIME']</varname>.
</para>
</tip>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>gmdate</function></member>
<member><function>idate</function></member>
<member><function>getdate</function></member>
<member><function>getlastmod</function></member>
<member><function>mktime</function></member>
<member><methodname>IntlDateFormatter::format</methodname></member>
<member><function>time</function></member>
<member><function>DateTimeImmutable::__construct</function></member>
<member><link linkend="datetime.constants.types">Constantes DateTime Prédéfinie</link></member>
</simplelist>
</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
-->