Fonction date en PHP
La fonction date() vous renvoie l’heure locale de votre serveur.
$date = date("d-m-Y");
echo ("Nous sommes le $date");
Affichage
Nous sommes le 04-12-2015
Le premier paramètre concerne le format de la date (voir les differents formats en dessous).
La fonction date() accepte un deuxième argument qui correspond à un nombre de secondes écoulées depuis le début de l’époque UNIX, (1er janvier 1970 00:00:00 GMT). Dans l’exemple ci-dessous la fonction affiche la date qu’il était après 0 seconde écoulé depuis le 01/01/1970.
$date = date("d-m-Y", 0 );
echo ("Nous sommes le $date");
Affichage
Nous sommes le 01-01-1970
Format de date
Les options permettent une bonne représentation d’une date et heure.
Exemple :
$date = date("d-m-Y H:i:s");
echo ("Nous sommes le $date");
Affichage
Nous sommes le 04-12-2015 12:20:07
Les différentes options sont :
Jour
J : Jour du mois sur deux chiffres sans les zéros initiaux 1 à 31
d : Jour du mois sur deux chiffres avec un zéro initial en fonction du jour 01 à 31
l : (L minuscule) Jour de la semaine en anglais Sunday à Saturday
w : Jour de la semaine au format numérique 0 (dimanche) à 6 (samedi) z : Jour de l’année 0 à 366
Semaine
W : Numéro de semaine dans l’année (les semaines commencent le lundi) Exemple : 42 (la 42ème semaine de l’année)
Mois
F : Mois, textuel, version longue; en anglais, comme January ou December January à December
m : Mois au format numérique, avec zéros initiaux 01 à 12
n : Mois sans les zéros initiaux 1 à 12 t Nombre de jours dans le mois 28 à 31
Année
L : Est ce que l’année est bissextile 1 si bissextile, 0 sinon.
Y : Année sur 4 chiffres Exemples : 1999 et 2003
y : Année sur 2 chiffres Exemples : 99 et 03
Heure
a : Ante méridien et Post méridien (minuscules) am ou pm
A : Ante méridien et Post méridien (majuscules) AM ou PM
g : Heure (format 12h) sans les zéros initiaux 1 à 12
G : Heure (format 24h) sans les zéros initiaux 0 à 23
h : Heure (format 12h) avec les zéros initiaux 01 à 12
H : Heure (format 24h) avec les zéros initiaux 00 à 23
s : Secondes avec zéros initiaux 00 à 59
i : Minutes avec zéros initiaux 00 à 59
Les constantes de dates
Il existe aussi de nombreuses constantes de dates qui peuvent être utilisées.
Exemple :
$date = date(DATE_RSS);
echo ("Nous sommes le $date");
Affichage
Nous sommes le Fri, 04 Dec 2015 15:33:04 +0000
Ces constantes sont :
- ATOM = « Y-m-d\TH:i:sP » ;
- COOKIE = « l, d-M-Y H:i:s T » ;
- ISO8601 = « Y-m-d\TH:i:sO » ;
- RFC822 = « D, d M y H:i:s O » ;
- RFC850 = « l, d-M-y H:i:s T » ;
- RFC1036 = « D, d M y H:i:s O » ;
- RFC1123 = « D, d M Y H:i:s O » ;
- RFC2822 = « D, d M Y H:i:s O » ;
- RFC3339 = « Y-m-d\TH:i:sP » ;
- RSS = « D, d M Y H:i:s O » ;
- W3C = « Y-m-d\TH:i:sP » ;
Temps universel
La fonction gmdate() vous renvoie le temps universel coordonné (UTC).
echo "heure locale : ".date("H:i:s").'<br>';
echo "heure GMT : ".gmdate("H:i:s");
Affichage
heure locale : 16:08:41
heure GMT : 15:08:41
Le timestamp
La fonction time() affiche le nombre de secondes écoulées depuis le 1er janvier 1970
echo time() ;
Affichage
1517497721
La fonction mktime() retourne le timestamp UNIX d’une date. Cette fonction s’avère utile pour s les calculs de dates et leurs validations. En effet la fonction va corriger les valeurs invalides.
Par exemple, toutes les lignes suivantes vont retourner la même date : « Jan-01-1998 ».
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
Fonctions utiles
La fonction getdate() vous retourne toutes les informations de la date courante ou d’une autre date si le timestamp est fourni
$today = getdate();
var_dump($today);
Affichage
array(11) { ["seconds"]=> int(32) ["minutes"]=> int(47) ["hours"]=> int(13) ["mday"]=> int(7) ["wday"]=> int(1) ["mon"]=> int(12) ["year"]=> int(2015) ["yday"]=> int(340) ["weekday"]=> string(6) "Monday" ["month"]=> string(8) "December" [0]=> int(1449496052) }
La fonction idate() avec le format ‘L’ indique si une année est bissextile. Elle retourne 1 si c’est le cas, sinon 0.
if(idate('L')){
echo "année bissextile";
}else{
echo "année non bissextile";
}
Affichage
année non bissextile
La fonction idate() fonctionne comme la fonction date() mais elle n’accepte qu’un caractère comme paramètre format.
La fonction checkdate() permet de vérifier si une date est valide. La liste des paramètres doit respecter cet ordre : mois, jour, année
$result = checkdate(13, 10, 2002); // 10-13-2002
if( $result == true ){
echo 'la date est valide';
}else{
echo 'la date n\'est pas valide';
}
Affichage
la date n'est pas valide
Contrairement à la fonction ‘mktime()’, la fonction ‘checkdate()’ ne corrige pas une date
La fonction strtotime() s’avère utile car elle transforme du texte (en anglais) en timestamp. Une utilisation concrête de la fonction concerne l’affichage d’une date décalée dans le temps
$demain = date('d-m-Y', strtotime('+1 day'));
echo $demain;
//( PHP va vous retourner ici le date de demain, +1 jour)
Affichage
02-02-2018
Les autres formats texte en anglais : ‘sec’ | ‘second’ | ‘min’ | ‘minute’ | ‘hour’ | ‘day’ | ‘fortnight’ | ‘forthnight’ | ‘month’ | ‘year’ | ‘weeks’. Voir tous les formats relatives.