mktime

(PHP 3, PHP 4 )

mktime --  Retourne le timestamp UNIX d'une date.

Description

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) 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, 0 si elle ne l'est pas, et -1 (par défaut) si on ne sait pas.

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 1. 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 1902 et 2037.

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".

Exemple 2. 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);
?>

Voir aussi date() et time().