Files
doc-fr/reference/datetime/functions/date.xml
Damien Seguy b7cdf868a3 remove final dot in title
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@275918 c90b9560-bf6c-de11-be94-00142212c4b1
2009-02-16 12:28:05 +00:00

526 lines
19 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.52 $ -->
<!-- EN-Revision: 1.45 Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<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>int</type><parameter>timestamp</parameter></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;
<para>
<variablelist>
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
Le format de la date désirée. Voir les options de formatage ci-dessous.
</para>
<para>
<table>
<title>
Les caractères suivants sont reconnus dans le paramètre
<parameter>format</parameter>
</title>
<tgroup cols="3">
<thead>
<row>
<entry>Caractères pour le paramètre <parameter>format</parameter></entry>
<entry>Description</entry>
<entry>Exemple de valeurs retournées</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> ('L' 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>N</literal></entry>
<entry>Représentation numérique ISO-8601 du jour de la semaine (ajouté en PHP 5.1.0)</entry>
<entry>&one; (pour Lundi) à <literal>7</literal> (pour Dimanche)</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>o</literal></entry>
<entry>L'année ISO-8601. C'est la même valeur que
<literal>Y</literal>, excepté que si le numéro de la semaine ISO
(<literal>W</literal>) appartient à l'année précédente ou suivante,
cette année sera utilisé à la place. (ajouté en PHP 5.1.0)</entry>
<entry>Exemples : <literal>1999</literal> ou <literal>2003</literal></entry>
</row>
<row>
<entry><literal>Y</literal></entry>
<entry>Année sur 4 chiffres</entry>
<entry>Exemples : <literal>1999</literal> ou <literal>2003</literal></entry>
</row>
<row>
<entry><literal>y</literal></entry>
<entry>Année sur 2 chiffres</entry>
<entry>Exemples : <literal>99</literal> ou <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><literal>u</literal></entry>
<entry>Microsecondes (ajouté en PHP 5.2.2)</entry>
<entry>Exemple : <literal>54321</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Fuseau horaire</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>e</literal></entry>
<entry>L'identifiant du fuseau horaire (ajouté en PHP 5.1.0)</entry>
<entry>Exemples : <literal>UTC</literal>, <literal>GMT</literal>, <literal>Atlantic/Azores</literal></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>P</literal></entry>
<entry>Différence avec l'heure Greenwich (GMT) avec un deux-points
entre les heures et les minutes (ajouté dans PHP 5.1.3)</entry>
<entry>Exemple : <literal>+02:00</literal></entry>
</row>
<row>
<entry><literal>T</literal></entry>
<entry>Abréviation du fuseau horaire</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>50400</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 <link xlink:href="&url.rfc;2822">RFC 2822</link></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 &zero; lorsqu'il est utilisé avec
<function>gmdate</function>.
</para>
<note>
<para>
Sachant que cette fonction n'accepte que des entiers sous la forme de timestamp,
le caractère <literal>u</literal> n'est utile que lors de l'utilisation de la fonction
<function>date_format</function> avec un timestamp utilisateur créé avec la fonction
<function>date_create</function>.
</para>
</note>
</listitem>
</varlistentry>
&date.timestamp.description;
</variablelist>
</para>
</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 <literal>E_WARNING</literal> 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>5.1.0</entry>
<entry>
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). Cependant, avant PHP 5.1.0, cette intervalle va du
01-01-1970 au 19-01-2038 sur quelques systèmes (e.g. Windows).
</entry>
</row>
&date.timezone.errors.changelog;
<row>
<entry>5.1.1</entry>
<entry>
Il y a plusieurs <link linkend="datetime.constants">constantes</link> utiles
de formats date/heure standards qui peuvent être utilisées pour spécifier le paramètre
<parameter>format</parameter>.
</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. Disponible depuis PHP 5.1
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 : Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);
// 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 12 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:16:18 m est le mois
$today = date("H:i:s"); // 17:16:18
?>
]]>
</programlisting>
</example>
</para>
<para>
Pour formater des dates dans d'autres langues, utilisez les fonctions
<function>setlocale</function> et <function>strftime</function>
au lieu de la fonction <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> depuis PHP 5.1.
</para>
</tip>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>getlastmod</function></member>
<member><function>gmdate</function></member>
<member><function>mktime</function></member>
<member><function>strftime</function></member>
<member><function>time</function></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:"../../../../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
-->