Files
doc-fr/reference/datetime/functions/date.xml
Yannick Torres bb40a13744 sync with EN
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@186386 c90b9560-bf6c-de11-be94-00142212c4b1
2005-05-14 17:05:33 +00:00

395 lines
14 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.22 $ -->
<!-- EN-Revision: 1.18 Maintainer: yannick Status: ready -->
<refentry id="function.date">
<refnamediv>
<refname>date</refname>
<refpurpose>Formate une date/heure locale</refpurpose>
</refnamediv>
<refsect1>
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>date</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>timestamp</parameter></methodparam>
</methodsynopsis>
<para>
<function>date</function> retourne une date sous forme d'une chaîne, au format
donné par la chaîne <parameter>format</parameter>.
La date est fournie par le paramètre <parameter>timestamp</parameter>,
sous la forme d'un timestamp. Par défaut, la date courante est
utilisée.
<note>
<para>
L'intervalle de validité d'un timestamp va généralement du
Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT.
(Ces dates correspondent aux valeurs minimales et maximales des
entiers 32 bits non-signés). Sur les systèmes Windows, cette intervalle va du
01-01-1970 au 19-01-2038.
</para>
</note>
<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 timestamps (par exemple,
MySQL et sa fonction <ulink url="&url.mysql.docs.date;">UNIX_TIMESTAMP()</ulink>).
</para>
</note>
</para>
<para>
Les caractères suivants sont utilisés pour spécifier le format :
<table>
<title>Caractères de format pour la fonction <function>date</function></title>
<tgroup cols="3">
<thead>
<row>
<entry>Caractère</entry>
<entry>Description</entry>
<entry>Exemple de valeur</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center"><emphasis>Jour</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>d</literal></entry>
<entry>Jour du mois, sur deux chiffres (avec un zéro initial)</entry>
<entry><literal>01</literal> à <literal>31</literal></entry>
</row>
<row>
<entry><literal>D</literal></entry>
<entry>Jour de la semaine, en trois lettres (et en anglais)</entry>
<entry><literal>Mon</literal> à <literal>Sun</literal></entry>
</row>
<row>
<entry><literal>j</literal></entry>
<entry>Jour du mois sans les zéros initiaux</entry>
<entry>&one; à <literal>31</literal></entry>
</row>
<row>
<entry><literal>l</literal> (<literal>L</literal> minuscule)</entry>
<entry>Jour de la semaine, textuel, version longue, en anglais</entry>
<entry><literal>Sunday</literal> à <literal>Saturday</literal></entry>
</row>
<row>
<entry><literal>S</literal></entry>
<entry>Suffixe ordinal d'un nombre pour le jour du mois, en anglais, sur deux lettres </entry>
<entry>
<literal>st</literal>, <literal>nd</literal>, <literal>rd</literal> ou
<literal>th</literal>. Fonctionne bien avec <literal>j</literal>
</entry>
</row>
<row>
<entry><literal>w</literal></entry>
<entry>Jour de la semaine au format numérique</entry>
<entry>&zero; (pour dimanche) à <literal>6</literal> (pour samedi)</entry>
</row>
<row>
<entry><literal>z</literal></entry>
<entry>Jour de l'année</entry>
<entry>&zero; à <literal>366</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Semaine</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>W</literal></entry>
<entry>Numéro de semaine dans l'année ISO-8601,
les semaines commencent le lundi (ajouté en &php; 4.1.0)</entry>
<entry>Exemple : <literal>42</literal> (la 42ème semaine de l'année)</entry>
</row>
<row>
<entry align="center"><emphasis>Mois</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>F</literal></entry>
<entry>
Mois, textuel, version longue; en anglais, comme
<literal>January</literal> ou <literal>December</literal>
</entry>
<entry><literal>January</literal> à <literal>December</literal></entry>
</row>
<row>
<entry><literal>m</literal></entry>
<entry>Mois au format numérique, avec zéros initiaux</entry>
<entry><literal>01</literal> à <literal>12</literal></entry>
</row>
<row>
<entry><literal>M</literal></entry>
<entry>Mois, en trois lettres, en anglais</entry>
<entry><literal>Jan</literal> à <literal>Dec</literal></entry>
</row>
<row>
<entry><literal>n</literal></entry>
<entry>Mois sans les zéros initiaux</entry>
<entry>&one; à <literal>12</literal></entry>
</row>
<row>
<entry><literal>t</literal></entry>
<entry>Nombre de jours dans le mois</entry>
<entry><literal>28</literal> à <literal>31</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Année</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>L</literal></entry>
<entry>Est ce que l'année est bissextile</entry>
<entry>&one; si bissextile, &zero; sinon.</entry>
</row>
<row>
<entry><literal>Y</literal></entry>
<entry>Année sur 4 chiffres</entry>
<entry>Exemples : <literal>1999</literal> et <literal>2003</literal></entry>
</row>
<row>
<entry><literal>y</literal></entry>
<entry>Année sur 2 chiffres</entry>
<entry>Exemples : <literal>99</literal> et <literal>03</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Heure</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>a</literal></entry>
<entry>Ante meridiem et Post meridiem en minuscules</entry>
<entry><literal>am</literal> ou <literal>pm</literal></entry>
</row>
<row>
<entry><literal>A</literal></entry>
<entry>Ante meridiem et Post meridiem en majuscules</entry>
<entry><literal>AM</literal> ou <literal>PM</literal></entry>
</row>
<row>
<entry><literal>B</literal></entry>
<entry>Heure Internet Swatch</entry>
<entry><literal>000</literal> à <literal>999</literal></entry>
</row>
<row>
<entry><literal>g</literal></entry>
<entry>Heure, au format 12h, sans les zéros initiaux</entry>
<entry>&one; à <literal>12</literal></entry>
</row>
<row>
<entry><literal>G</literal></entry>
<entry>Heure, au format 24h, sans les zéros initiaux</entry>
<entry>&zero; à <literal>23</literal></entry>
</row>
<row>
<entry><literal>h</literal></entry>
<entry>Heure, au format 12h, avec les zéros initiaux</entry>
<entry><literal>01</literal> à <literal>12</literal></entry>
</row>
<row>
<entry><literal>H</literal></entry>
<entry>Heure, au format 24h, avec les zéros initiaux</entry>
<entry><literal>00</literal> à <literal>23</literal></entry>
</row>
<row>
<entry><literal>i</literal></entry>
<entry>Minutes avec les zéros initiaux</entry>
<entry><literal>00</literal> à <literal>59</literal></entry>
</row>
<row>
<entry><literal>s</literal></entry>
<entry>Secondes, avec zéros initiaux</entry>
<entry><literal>00</literal> à <literal>59</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Fuseau horaire</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>I</literal> (i majuscule)</entry>
<entry>L'heure d'été est activée ou pas</entry>
<entry>&one; si oui, &zero; sinon.</entry>
</row>
<row>
<entry><literal>O</literal></entry>
<entry>Différence d'heures avec l'heure de Greenwich (GMT),
exprimée en heures</entry>
<entry>Exemple : <literal>+0200</literal></entry>
</row>
<row>
<entry><literal>T</literal></entry>
<entry>Fuseau horaire du serveur</entry>
<entry>Exemples : <literal>EST</literal>, <literal>MDT</literal> ...</entry>
</row>
<row>
<entry><literal>Z</literal></entry>
<entry>Décalage horaire en secondes. Le décalage des zones à l'ouest
de la zone UTC est négative, et à l'est, il est positif.</entry>
<entry><literal>-43200</literal> à <literal>43200</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Date et Heure complète</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>c</literal></entry>
<entry>Date au format ISO 8601 (ajouté en &php; 5)</entry>
<entry>2004-02-12T15:19:21+00:00</entry>
</row>
<row>
<entry><literal>r</literal></entry>
<entry>Format de date <ulink url="&url.rfc;2822">RFC 2822</ulink></entry>
<entry>Exemple : <literal>Thu, 21 Dec 2000 16:01:07 +0200</literal></entry>
</row>
<row>
<entry><literal>U</literal></entry>
<entry>Secondes depuis l'époque Unix (1er Janvier 1970, 0h00 00s GMT)</entry>
<entry>Voir aussi <function>time</function></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Les caractères non reconnus seront imprimés tels quel.
"<literal>Z</literal>" retournera toujours "0" lorsqu'il est utilisé avec
<function>gmdate</function>.
</para>
<para>
<example>
<title>Exemple avec <function>date</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo (date("l dS of F Y h:i:s A"));
echo ("Le 14 Juillet 2004 tombe un " . date("l", mktime(0,0,0,7,14,2004)));
?>
]]>
</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 anti-slash. Si le caractère est lui-même une séquence
incluant un anti-slash, vous devrez protéger aussi l'anti-slash.
<example>
<title>Protection des caractères avec <function>date</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo date("l \\t\h\e jS");
// affiche 'Saturday the 8th'
// \t représente une tabulation
?>
]]>
</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>
Exemples avec <function>date</function> et <function>mktime</function>
</title>
<programlisting role="php">
<![CDATA[
<?php
$demain = mktime(0, 0, 0, date("m") , date("d") + 1, date("Y"));
$le_mois_dernier = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$l_an_prochain = mktime(0, 0, 0, date("m"), date("d"), date("Y") + 1);
?>
]]>
</programlisting>
</example>
</para>
<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>
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>Formatage avec <function>date</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Aujourd'hui, le 12 Mars 2001, 10:16:18 pm
$aujourdhui = date("F j, Y, g:i a"); // March 12, 2001, 10:16 pm
$aujourdhui = date("m.d.y"); // 03.12.01
$aujourdhui = date("j, m, Y"); // 12, 3, 2001
$aujourdhui = date("Ymd"); // 20010312
$aujourdhui = date('h-i-s, j-m-y, it is w Day z '); // 05-16-17, 12-03-01, 1631 1618 6 Monpm01
$aujourdhui = date('\C\'\e\s\t\ \l\e\ jS \j\o\u\r\.'); // C'est le 12th jour.
$aujourdhui = date("D M j G:i:s T Y"); // Mon Mar 12 15:16:08 MST 2001
$aujourdhui = date('H:m:s \m \e\s\t\ \l\e\ \m\o\i\s'); // 17:03:18 m est le mois
$aujourdhui = date("H:i:s"); // 10:16:18
// notation française
$aujourdhui = date("d/m/y"); // 12/03/01
$aujourdhui = date("d/m/Y"); // 12/03/2001
?>
]]>
</programlisting>
</example>
</para>
<para>
Pour formater des dates dans d'autres langues, utilisez les fonctions
<function>setlocale</function> et <function>strftime</function>.
</para>
<para>
Voir aussi
<function>getlastmod</function>,
<function>time</function>,
<function>strftime</function>,
<function>gmdate</function> et
<function>mktime</function>.
</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:"../../../../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
-->