microtime
<<<
mktime strftime
>>>

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.19 mktime() Retourne le timestamp UNIX d'une date

[ Exemples avec mktime ]   PHP 3, PHP 4 , PHP 5

int  mktime ( int   hour , int   minute , int   second , int   month , int   day , int   year , int   is_dst )

ATTENTION : l'ordre des arguments est différent de celui de la commande UNIX habituelle mktime(), et fournit des résultats aléatoires si on oublie cet ordre. C'est une erreur très commune que de se tromper de sens.

mktime retourne un timestamp UNIX correspondant aux arguments fournis. Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié.

Les arguments peuvent être omis, de droite à gauche, et tous les arguments manquants sont utilisés avec la valeur courante de l'heure et du jour.

is_dst peut être mis à 1 si l'heure d'hiver est appliquée (DST), 0 si elle ne l'est pas, et -1 (par défaut) si on ne sait pas.

Quelques temps sont invalides si DST est activé sur les systèmes où PHP fonctionne ou is_dist est défini à 1. Si DST est activé e.g. 2:00, tous les temps entre 2:00 et 3:00 sont invalides et la fonction mktime retourne une valeur indéfinie (généralement une valeur négative). Quelques systèmes (e.g. Solaris 8) activent DST à minuit, donc, le temps 0:30 du jour lorsque DST est activé est évalué à 23:30 du jour précédent.

Note

is_dst a été ajouté à partir de la version 3.0.10.

mktime est pratique pour faire des calculs de dates et des validations, car elle va automatiquement corriger les valeurs invalides. Par exemple, toutes les lignes suivantes vont retourner la même date : "Jan-01-1998".
Exemple mktime

<?php
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));
?>
year peut prendre deux ou quatre chiffres, avec les valeurs entre 0-69 qui correspondent à 2000-2069 et 70-99 à 1970-1999 (sur les systèmes où time_t sont sur des entiers 32bit signés, comme cela se fait le plus souvent de nos jours, year est valide dans l'intervalle 1901 et 2038.

Note
Microsoft Windows

Les valeurs négatives des timestamp ne sont pas supportées sous toutes les versions actuelles de Microsoft Windows. De ce fait, l'intervalle valide pour les années est de 1970 à 2038, inclus.

Le dernier jour d'un mois peut être décrit comme le jour "0" du mois suivant, et non pas le jour -1. Les deux exemples suivants vont donner : "Le dernier jour de Fevrier 2000 est: 29".
Dernier jour du mois

<?php
$lastday
= mktime (0, 0, 0, 3, 0, 2000);
echo
strftime ("Le dernier jour de Fevrier 2000 est: %d", $lastday);
$lastday = mktime (0, 0, 0, 4, -31, 2000);
echo
strftime ("Le dernier jour de Fevrier 2000 est: %d", $lastday);
?>

Les dates dont l'année, le mois et le jour valent 0 sont considérées comme illégalles (il sera considéré comme valant 30.11.1999 et aura un comportement étrange).

Voir aussi gmmktime , date et time .

<< mktime >>
microtime Dates et heures strftime