130 inscrits



 Niveau: Intermédiaire
 Visites de la page: 11818
 Commentaire: [0]Commentaires
  Date d'ajout: [11-07-2005]
  Auteur: Webmaster


 Sommaire :


 Introduction :

Avec PHP, de nombreuses fonctions de temps et de date sont à notre disposition pour manipuler les dates. Ces fonctions permettent d'obtenir, notamment, la date courante dans différents formats. Nous allons donc essayer ici de faire le tour de ces fonctions pour vous montrer les différentes utilisations de celles-ci. Avant tout, il faut savoir que PHP fournit l'instant sous forme d'une valeur entière que nous appelons 'timestamp' UNIX: il s'agit du nombre de secondes écoulées depuis le 1er janvier 1970 à minuit. Nous verrons donc aussi les fonctions qui renvoient un timestamp et qui manipulent cette valeur.

 Obtenir la date et l'heure avec date() :

Il est assez simple d'afficher la date (et/ou l'heure) locale du serveur avec la fonction date(). La fonction date() renvoie une chaîne de caractères décrivant, de manière plus compréhensible que le 'timestamp', la date selon le format spécifié.

   Code:
<?php
date
("chaîne format", "entier timestamp");
?>
L'argument timestamp, interprété à partir du temps local, est optionnel. Quant à la chaîne format, elle contient des éléments particuliers qui sont les suivants:

Eléments Description
a am ou pm
A AM ou PM
B "Swatch Beat Time"
d Jour du mois
D Jour de la semaine en anglais abrégé en 3 lettres
F Nom du mois
g Heure, au format 12h, sans les zéros initiaux
G Heure, au format 24h, sans les zéros initiaux
h Heure, au format 12h (01 à 12)
H Heure, au format 24h (00 à 23)
i Minutes
j Jour du mois, sans les zéros initiaux
l Jour de la semaine en anglais
L 1 pour l'année bissextile, 0 sinon
m Chiffre du mois, de 01 à 12
M Abréviation du nom du mois
S Suffixe ordinal pour le jour du mois
t Nombre de jour dans le mois (28, 29, 30 ou 31)
U Nombre de secondes depuis le 1er Janvier 1970
y Année en 2 chiffres
Y Année en 4 chiffres
z Jour de l'année de 0 à 365
Z Décalage horaire de la zone en secondes (-43200 à 43200)

> Exemple d'utilisation:

   Code:
<?php
$date
= date("d-m-Y");
$heure = date("H:i");
echo
'Nous sommes le '.$date.' et il est '.$heure;
?>
Ce qui donnera par exemple: Nous sommes le 11-07-2005 et il est 11:52

 Utilisation et conversion des 'timestamp' :

Pour récupérer le 'timestamp' en cours, il existe pour cela la fonction time(): elle renvoie une valeur entière qui est le nombre de secondes écoulées depuis le 1er Janvier 1970 minuit GMT.

   Code:
<?php
echo time();                                    
?>
Ce qui renverra par exemple: 1121075921

La fonction time() peut être utilisée avec la fonction date() pour formater une date depuis un 'timestamp':
   Code:
<?php
echo date("d-m-Y", time()+24*3600);
?>
Ce qui renverra la date courante + 24 heures, ie. la date du lendemain de la date courante.

Maintenant que nous savons récupérer le 'timestamp' correspondant à l'instant présent, il peut être intéressant de récupérer celui d'une date donnée: c'est le rôle de la fonction mktime().

   Code:
<?php
mktime
("entier heure","entier minute","entier seconde","entier mois","entier jour","entier année");
?>
Tous les arguments sont optionnels et s'ils ne sont pas indiqués, la valeur courante sera utilisée. Comme pour la fonction time(), mktime() peut être utilisée avec date():
   Code:
<?php
echo date("d-m-Y", mktime(0,0,0,11,11,2005)+24*3600);
?>
Ce qui renverra la date du lendemain du 11/11/2005.

Il existe une autre fonction permettant de convertir un 'timestamp': il s'agit de la fonction getdate()

   Code:
<?php
getdate
("entier timestamp");
?>

La fonction getdate() renvoie un tableau associatif, avec une information à propos de la date spécifiée. Voici les éléments du tableau retourné par getdate():

Eléments Description
hours Heure au format 24 heures
mday Jour du mois
minutes Heure exprimée en minutes
mon Mois en chiffre
month Nom entier du mois en anglais
seconds Minute exprimée en secondes
wday Jour de la semaine en chiffre (0 à 6)
weekday Nom du jour de la semaine en anglais
yday Jour de l'année en chiffre
year Année
0 Timestamp

> Exemple d'utilisation de getdate():

   Code:
<?php
//Date courante utilisée car getdate() vide
$current_date = getdate();

//On affiche les éléments du tableau renvoyé
foreach ($current_date as $key => $value)
    {
    echo
$key.' : '.$value.'<br>';
    }        
?>


 D'autres fonctions permettant de manipuler les dates :

     La fonction checkdate():

La fonction checkdate() permet de contrôler la validité d'une date provenant d'une entrée utilisateur par exemple. Elle renvoie true si la date est valide, false dans le cas contraire.

   Code:
<?php
checkdate
("entier mois","entier jour","entier année");
?>
La date est considérée comme valide si : l'année est comprise entre 1 et 32767 inclus, le mois est compris entre 1 et 12 inclus et le jour est compris dans l'intervalle de dates du mois (les années bissextiles étant prises en compte).

     La fonction strftime():

Cette fonction est similaire à date(), mais elle renvoie une date à un format particulier en prenant en compte les options locales (elle permet par exemple d'afficher la date en français lorsqu'elle est utilisée avec setlocale() ).

   Code:
<?php
strftime
("chaîne format","entier timestamp");
?>
Le paramètre 'timestamp' est optionnel et la chaîne format accepte les éléments de la liste suivante:

Eléments Description
%a Abréviation du nom des jours de la semaine (local)
%A Nom complet des jours de la semaine (local)
%b Abréviation du nom des mois (local)
%B Nom complet des mois
%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 chiffre (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')
%H Heure basée sur 24 heures (00 à 23)
%I Heure basée sur 12 heures (01 à 12)
%j Jour de l'année en chiffre (001 à 366)
%m Mois de 1 à 12
%M Minutes
%p Représentation équivalente de am ou pm
%S Secondes
%T L'heure actuelle (égal à %H:%M:%S)
%u Le numéro de jour dans la semaine, de 1 à 7
%U Numéro de semaine dans l'année, avec le premier dimanche de l'année comme le premier jour de la première semaine
%W Numéro de semaine dans l'année, avec 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

> Exemple d'utilisation: Afficher une date en français

   Code:
<?php
setlocale
(LC_TIME, "french");
$date_fr = strftime("%A %d %B %Y");
echo
'Nous sommes le '.$date_fr;
?>
Ce qui affichera par exemple: Nous sommes le lundi 11 juillet 2005

     La fonction microtime():

La fonction microtime() renvoie une chaîne de caractères contenant 2 nombres séparés par un espace. Le premier nombre est une valeur comprise entre 0.000... et 0.999... qui est le nombre de microsecondes. Le second nombre placé dans la chaîne est le nombre de secondes écoulées depuis le 1er Janvier 1970 minuit GMT.

   Code:
<?php
echo microtime();
//Affiche par exemple: 0.73333600 1121093746
//ce qui correspond à 1121093746.73333600 sec
?>


 Conclusion :

Il ne vous reste maintenant plus qu'à tester toutes ces fonctions pour mieux vous rendre compte de ce qu'elles font avec leurs paramètres. Bon courage...


 Si vous avez besoin d'aide, veuillez consulter les forums
 Pour proposer un article PHP, cliquez ici
 Retour à la liste des articles

 Flux RSS des articles PHP / MySQL
 Lien permanent

.:: Easy-Script.com © Ce texte est la propriété de son auteur.
Toute reproduction est interdite ::.


.: Easy-Script © 2002/2010 - Tous droits réservés - CNIL N°1098778 - Gén en 0.706 sec :.                        Top