8.19 Dates et heures 
8 Référence des fonctions 
 Manuel PHP 
 . Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . checkdate . date_sunrise . date_sunset . date . getdate . gettimeofday . gmdate . gmmktime . gmstrftime . idate . localtime . microtime . mktime ->strftime . strptime . strtotime . time
 
  | 
 
  8.19.20 strftime()
    Formate une date/heure locale avec les options locales
   [ Exemples avec strftime ]   PHP 3, PHP 4 , PHP 5 
string
 strftime (
string
 
format
 ,
int
 
timestamp
 )
strftime
  retourne la date sous la forme
    d'une chaîne formatée conformément au format
     
format
 , en utilisant le timestamp
     
timestamp
  donné. Si le
     
timestamp
  est omis, la date actuelle est
    utilisée. Les mois et jours de la semaine, et toutes les
    chaînes dépendantes de la langue sont fixées
    avec la commande  
setlocale
 .
    
    Les caractères suivants sont utilisés pour spécifier
    le format de la date :
     
 
- 
%a
  : nom abrégé du jour de la semaine (local).
      
 
- 
%A
  : nom complet du jour de la semaine (local).
      
 
- 
%b
  : nom abrégé du mois (local).
      
 
- 
%B
  : nom complet du mois (local).
      
 
- 
%c
  : représentation préférée pour
       les dates et heures, en local.
      
 
- 
%C
  : numéro de siècle (l'année, divisée par 100
       et arrondie entre 00 et 99)
      
 
- 
%d
  : jour du mois en numérique (intervalle 01 à 31)
      
 
- 
%D
  : identique à  %m/%d/%y
      
 
- 
%e
  : numéro du jour du mois. Les chiffres sont précédés
       d'un espace (de ' 1' à '31')
      
 
- 
%g
  : identique à %G, sur 2 chiffres.
       
 
- 
%G
  : L'année sur 4 chiffres correspondant au numéro de semaine (voir %V).
        Même format et valeur que %Y, excepté que si le numéro de la semaine
        appartient à l'année précédente ou suivante, l'année courante sera utilisé à la place.
       
 
- 
%h
  : identique à %b
      
 
- 
%H
  : heure de la journée en numérique, et sur 24-heures
       (intervalle de 00 à 23)
      
 
- 
%I
  : heure de la journée en numérique, et sur 12- heures
       (intervalle 01 à 12)
      
 
- 
%j
  : jour de l'année, en numérique (intervalle 001 à 366)
      
 
- 
%m
  : mois en numérique (intervalle 1 à 12)
      
 
- 
%M
  : minute en numérique
      
 
- 
%n
  : newline character
      
 
- 
%p
  : soit `am' ou `pm' en fonction de l'heure absolue, ou en fonction
       des valeurs enregistrées en local.
      
 
- 
%r
  : l'heure au format a.m. et p.m.
      
 
- 
%R
  : l'heure au format 24h
      
 
- 
%S
  : secondes en numérique
      
 
- 
%t
  : tabulation
      
 
- 
%T
  : l'heure actuelle (égal à  %H:%M:%S)
      
 
- 
%u
  : le numéro de jour dans la semaine, de 1 à 7. (1 représente
       Lundi)
      
| Attention |  | 
 
         Les systèmes Sun Solaris semblent commencer le Dimanche à 1 malgré
         le fait que le standard ISO 9889:1999 (actuellement le standard C) spécifie 
         clairement le début de la semaine à Lundi.
         
 |  
  
- 
%U
  : numéro de semaine dans l'année, en considérant
       le premier dimanche de l'année comme le premier jour de la
       première semaine.
      
 
- 
%V
  : le numéro de semaine comme défini dans l'ISO 8601:1988,
       sous forme décimale, de 01 à 53. La semaine 1 est la première
       semaine qui a plus de 4 jours dans l'année courante, et dont
       Lundi est le premier jour. (Utilisez %G ou %g pour les éléments de l'année
       qui correspondent au numéro de la semaine pour le timestamp donné.)
      
 
- 
%W
  : numéro de semaine dans l'année, en considérant
       le premier lundi de l'année comme le premier jour de la
       première semaine
      
 
- 
%w
  : jour de la semaine, numérique, avec Dimanche = 0
      
 
- 
%x
  : format préféré de représentation de la date sans l'heure
      
 
- 
%X
  : format préféré de représentation de l'heure sans la date
      
 
- 
%y
  : l'année, numérique, sur deux chiffres (de 00 à 99)
      
 
- 
%Y
  : l'année, numérique, sur quatre chiffres
      
 
- 
%Z ou %z
  : fuseau horaire, ou nom ou abréviation
      
 
- 
%%
  : un caractère `%' littéral
      
 
 
 
| Note |  | 
 
      Tous les caractères suivants ne sont pas toujours supportés par
      toutes les bibliothèques C. Dans ce cas, ils ne seront pas supportés
      par PHP non plus. De plus, toutes les plates-formes ne supportent pas
      les timestamps négatifs, et vos dates pourraient être limitées par le
      début de l'époque Unix. Cela signifie que 
      %e, %T, %R et %D (et peut être d'autres) et les dates antérieures au
       
1er Janvier 1970
  ne fonctionneront pas sous Windows,
      sur certaines distributions de Linux, et sur certains systèmes d'exploitation.
      Pour Windows, une liste complète des options de conversion est disponible
      sur le  site de 
MSDN
 .
      
 |   
 
| Exemple avec strftime |  
<?php setlocale(LC_TIME, "C"); echo strftime("%A en Finlandais est "); setlocale(LC_TIME, "fi"); echo strftime("%A, en Français "); setlocale(LC_TIME, "fr"); echo strftime("%A et en Allemand "); setlocale(LC_TIME, "de"); echo strftime("%A.\n"); ?>
 
 |   
 
    Cet exemple ne fonctionnera que si vous avez les locales respectives
    installées sur votre système.
      
| Note |  | 
 
       %G et %V, qui sont basées sur la semaine ISO 8601:1988, peut
       conduire à des résultat inattendus (bien que corrects) si le
       système de numérotation n'est pas connu. Voyez l'exemple 
       %V ci-dessus et l'exemple ci-dessous.
       
 |   
 
| Exemple au format de date ISO 8601:1988 |  
<?php /*     December 2002 / January 2003 ISOWk  M   Tu  W   Thu F   Sa  Su ----- ---------------------------- 51     16  17  18  19  20  21  22  52     23  24  25  26  27  28  29 1      30  31   1   2   3   4   5 2       6   7   8   9  10  11  12 3      13  14  15  16  17  18  19   */
  // Affiche : 12/28/2002 - %V,%G,%Y = 52,2002,2002 echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/28/2002")) . "\n";
  // Affiche : 12/30/2002 - %V,%G,%Y = 1,2003,2002 echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/30/2002")) . "\n";
  // Affiche : 1/3/2003 - %V,%G,%Y = 1,2003,2003 echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";
  // Affiche : 1/10/2003 - %V,%G,%Y = 2,2003,2003 echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";
 
 
  /*     December 2004 / January 2005 ISOWk  M   Tu  W   Thu F   Sa  Su ----- ---------------------------- 51     13  14  15  16  17  18  19 52     20  21  22  23  24  25  26 53     27  28  29  30  31   1   2 1       3   4   5   6   7   8   9 2      10  11  12  13  14  15  16   */
  // Affiche : 12/23/2004 - %V,%G,%Y = 52,2004,2004 echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";
  // Affiche : 12/31/2004 - %V,%G,%Y = 53,2004,2004 echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";
  // Affiche : 1/2/2005 - %V,%G,%Y = 53,2004,2005 echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";
  // Affiche : 1/3/2005 - %V,%G,%Y = 1,2005,2005 echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";
  ?>
 
 |   
    Voir aussi
     
setlocale
 ,
     
mktime
 ,
      
strptime
  et
    le  groupe de spécifications de 
strftime
 .
    
 |