Vous êtes ici :
Accueil Cours Développement web Création d'un site web en PHP et MySQL Date et heure

Création d'un site web en PHP et MySQL : Date et heure

Localisation


Le   format   de   date   et   d'heure   (format   et   langue)   est   dépendant   de   l'environnement   d'exécution   du code   PHP.   Généralement   la   plupart   des   serveurs   web   incorporant   PHP   sont   configurés   en   langue anglaise   avec   une   gestion   des   informations   de   localisation   en   anglais.   Il   peut   être   préférable   de passer   en  français   pour   un   site   francophone  ce  qui   simplifie   largement   la   tâche.   On  peut   effectuer cela avec la fonction « setlocale ». Voici deux exemples: un sous Windows NT/2000 et un autre sousLinux

<?php

if (substr(php_uname(), 0, 7) != "Windows") {
setlocale(LC_TIME,"fr_FR@euro");
} else {
setlocale(LC_TIME,"fr");
}

?>

 

Dans  cet   exemple,   nous  vérifions  d'abord   à  quel   système  nous  avons  à  faire  (fonction  php_uname) puis   en  fonction   du  résultat   nous  passons  en  localisation   française  selon  deux   méthodes.   Après   ce changement,   les   appels   aux   fonctions   retournant   des   jours   de   la   semaine   ou  des   mois   le   feront   en français.

 

Récupérer la date et l'heure

 

  • la fonction date()

Le  plus simple est d'utiliser  la fonction « date » qui  retourne  l'heure locale sous forme d'une chaîne de   caractères   à   préciser   en   premier   paramètre.   En   second   paramètre   on   peut   préciser   un « timestamp » si on ne souhaite pas l'heure actuelle. Pour récupérer la date du jour :

 

<?php
echo date("d/m/Y"); // 25/11/2015
?>

 

Voici les caractères utilisables (documentationPHP):

 

  •  a   -"am"(matin) ou "pm"(après-midi)
  •  A   -"AM"(matin) ou "PM" (après-midi)
  •  B  - Heure Internet Swatch
  •  d   -Jour du mois,sur deux chiffres(éventuellement avec un zéro) :"01"à"31"
  •  D  -Jour de la semaine, en trois lettres(et en anglais) :par exemple"Fri"(pour Vendredi)
  •  F  -Mois,textuel,version longue; en anglais, i.e. "January"(pour Janvier)
  •  g  -Heure, au format 12h, sans les zéros initiauxi.e. "1"à"12"
  •  G  -Heure, au format 24h, sans les zéros initiaux i.e. "0"à"23"
  •  h   -Heure, au format 12h, "01"à"12"
  •  H  -heure, au forma t24h, "00"à"23"
  •  i  -Minutes;"00"à"59"
  •  I  (imajuscule) -"1"si l'heure d'été est activée, "0"sil 'heure d'hiver .
  •  j  -Jourdu mois sans les zéros initiaux:"1"à"31"
  •  l  -('L'minuscule) - Jour de la semaine, textuel,version longue;en anglais,i.e. "Friday"(pour Vendredi)
  •  L  -Booléen pour savoir si l'année est bissextile("1") ou pas("0")
  •  m  -Mois;i.e. "01"à"12"
  •  M  -Mois,en trois lettres (et en anglais) :par exemple "Apr"(pour Avril)
  •  n   -Mois sans les zéros initiaux; i.e. "1"à"12"
  •  O  -Différence d'heures avec l'heure de Greenwich, exprimée en heures;i.e. "+0200"
  •  r  -Format de date RFC822; i.e. "Thu, 21 Dec2000 16:01:07+0200"(ajouté en PHP4.0.4)
  •  s  -Secondes;i.e. "00"à"59"
  •  S  - Suffixe ordinal d'un nombre, en anglais, sur deux lettres:i.e. "th", "nd"
  •  t  -Nombre de jours dans le mois donné, i.e. "28"à"31"
  •  T  - Fuseau horaire de la machine; i.e. "MET"
  •  U  -Secondes depuis une époque
  •  w  -Jour de la semaine, numérique, i.e. "0"(Dimanche) to"6"(Samedi)
  •  W  -Numéro de semaine dans l'année ISO-8601 :les semaines commencent le lundi (ajoutéen PHP4.1.0)
  •  Y  -Année, 4 chiffres;i.e. "1999"
  •  y  -Année, 2 chiffres;i.e. "99"
  •  z  -Jour de l'année; i.e. "0"à"365"
  • Z  -Décalage horaire en secondes(i.e. "-43200"à"43200")

 

Tout autre caractère peut être employé et ne sera pas interprété. Si vous désirez employer l'un de ces caractères, il faut le verrouiller avec un antislash. ATTENTION AVEC CETTE FONCTION LE RESULTAT EST EN ANGLAIS.
On peut  récupérer  le  timestamp actuel avec  la  fonction « time ». La commande suivante a  la même effet que la précédente:

 

<?php

echo date("d/m/Y", time()); // 25/11/2015

?>

 

  • date locale strftime()


Pour   formater   le   résultat   en   local   (pour   tenir   compte   de   la   localisation)   il   faut   utiliser   la   fonction « strftime »   qui   tient   compte   de   la langue.   On   aura   donc   un   résultat   en   français.   Le   premier paramètre est la chaîne de formatage.Le second est un éventuel timestamp.

  •  %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 desiècle(l'année, diviséepar 100 etarrondieentre00 et99) %d -jour du moisennumérique(intervalle01 à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')
  •  %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(intervalle01 à12)
  •  %j  -jour de l'année, en numérique(intervalle 001 à 366)
  •  %m- mois en numérique(intervalle1 à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)
  •  %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'ISO8601:1988, sous forme décimale, de01 à 53. La semaine1 est la première semaine qui a plus de jours dans l'année courante, et dont Lundi est le premier jour.
  • %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 -fuseau horaire, ou nom ou abréviation
  •  %% - un caractère'%' littéral

 

  • Retour par tableau getdate()


La fonction « getdate » permet aussi de récupérer  la date et l'heure actuels  (avec éventuellement un timestamp en paramètre) mais sous forme de tableau indexé selon les valeurs suivantes:

  •  "seconds"- secondes
  •  "minutes" -minutes
  • "hours" -heures
  •  "mday" -jour du mois
  •  "wday" -jour de la semaine, numérique. 0:dimanche jusqu'à 6:samedi
  •  "mon" -mois,numérique
  •  "year" -année, numérique
  •  "yday" -jour de l'année, numérique;i.e. "299"
  •  "weekday" - jour de la semaine, texte complet(en anglais);i.e. "Friday"
  •  "month" - mois,texte complet(en anglais);i.e. "January"

 

<?php

$aujourdhui = getdate();
$mois = $aujourdhui['month'];
$mjour = $aujourdhui['mday'];
$annee = $aujourdhui['year'];
echo "$mjour/$mois/$annee";
?>

 

  • L'heure localtime()


Pour   l'heure   on   peut   utiliser   les   fonctions   « localtime »   qui   peut   aussi   prendre   un   paramètre timestamp et qui retourne un tableau indexé selon les valeurs suivantes;

 

  •  "tm_sec" -secondes
  •  "tm_min"  -minutes
  •  "tm_hour" -heure
  •  "tm_mday" -jour du mois
  •  "tm_mon" -mois de l'année
  •  "tm_year" -Année, incompatiblean 2000
  •  "tm_wday" -Jour de la semaine
  •  "tm_yday" -Jour de l'année
  •  "tm_isdst" -Est-ce que l'heure d'hiver a pris effet?

 

Récupérer n'importe quelle date


On   peut   récupérer   n'importe   quelle   date   en   timestamp   ou   en   chaîne.   On   peut   pour   cela   utiliser   la fonction « strtotime ». Elle prend comme paramètre une chaîne de texte en anglais qu'elle essaie de convertir en timestamp. Voici quelques exemples.

<?php

echo strtotime("now"); // timestamp actuel 
echo strtotime("-1 day"); // hier
echo strtotime("+1 day"); // demain
echo strtotime("11 september 2001"); // Le 11 septembre 2001
echo strtotime("+1 year +2 weeks +3 days"); // dans 1 an 2 semaines 3 jours
?>

 

 




Vous êtes ici :
Accueil Cours Développement web Création d'un site web en PHP et MySQL Date et heure