Section courante

A propos

Section administrative du site

CHECKDATE

Vérifie la date
PHP 4+

Syntaxe

function checkdate($month, $day, $year);

Paramètres

Nom Description
$year Ce paramètre permet d'indiquer l'année entre 1 et 32767.
$month Ce paramètre permet d'indiquer le mois :
Valeur Description
1 Cette valeur permet d'indiquer le mois de Janvier
2 Cette valeur permet d'indiquer le mois de Février
3 Cette valeur permet d'indiquer le mois de Mars
4 Cette valeur permet d'indiquer le mois d'Avril
5 Cette valeur permet d'indiquer le mois de Mai
6 Cette valeur permet d'indiquer le mois de Juin
7 Cette valeur permet d'indiquer le mois de Juillet
8 Cette valeur permet d'indiquer le mois d'Août
9 Cette valeur permet d'indiquer le mois de Septembre
10 Cette valeur permet d'indiquer le mois d'Octobre
11 Cette valeur permet d'indiquer le mois de Novembre
12 Cette valeur permet d'indiquer le mois de Décembre
$day Ce paramètre permet d'indiquer le jour (valeur entre 1 et 31)

Retour

Valeur Description
FALSE Cette valeur permet d'indiquer que la date n'est pas valide.
TRUE Cette valeur permet d'indiquer que la date est valide.

Description

Cette fonction permet de vérifier si l'année, le mois et le jour spécifié sont une date grégorienne valide.

Exemples

Voici quelques exemples typiques de l'utilisation de cette fonction :

  1. <?php
  2. echo "1,9,2010=" . (checkdate(1,9,2010)?"true":"false") . "<br />";
  3. echo "01,09,2010=" . (checkdate(01,09,2010)?"true":"false") . "<br />";
  4. echo "12,03,2011=" . (checkdate(12,03,2011)?"true":"false") . "<br />";
  5. echo "12,12,03=" . (checkdate(12,12,03)?"true":"false") . "<br />";
  6. echo "14,12,03=" . (checkdate(14,12,03)?"true":"false") . "<br />";
  7. ?>

on obtiendra le résultat suivant :

1,09,2010=true
01,09,2010=false
12,03,2011=true
12,12,03=true
14,12,03=false

Voici un exemple permettant de tester la validité d'une date en format ISO sans l'utilisation de cette fonction :

  1. <?php
  2. function IsLeapYear($Year) { 
  3.  return ((($Year & 3) == 0) && (($Year % 100 != 0) || ($Year % 400 == 0))); 
  4. } 
  5.  
  6. function IsDateValidISO($date) {
  7.   $DayInMonth=array(31,28,31,30,31,30,31,31,30,31,30,31);
  8.   $Year = substr($date,0,4);
  9.   switch(substr($date,4,1)) {
  10.       case "/":case "-":case "\\":case ".":
  11.         break;
  12.     default:
  13.         return FALSE;
  14.   }
  15.   $Month = substr($date,5,2);
  16.   switch(substr($date,7,1)) {
  17.       case "/":case "-":case "\\":case ".":
  18.         break;
  19.     default:
  20.         return FALSE;
  21.   }
  22.   $Day = substr($date,8,2);
  23.   if(!is_numeric($Year)) return FALSE;
  24.   if(!is_numeric($Month)) return FALSE;
  25.   if(!is_numeric($Day)) return FALSE;
  26.   
  27.   if((intval($Month) < 1) || (intval($Month) > 12)) return FALSE;
  28.   $NumberOfDay = $DayInMonth[$Month-1];
  29.   if(($Month==2)&&(IsLeapYear($Year))) $NumberOfDay++;
  30.   if((intval($Day) < 1) || (intval($Day) > $NumberOfDay)) return FALSE;
  31.   return TRUE;
  32. } 
  33.  
  34. echo "1900-02-29=".(IsDateValidISO("1900-02-29")?"true":"false").",".(checkdate(2,29,1900)?"true":"false")."<br />";
  35. echo "2000-02-29=".(IsDateValidISO("2000-02-29")?"true":"false").",".(checkdate(2,29,2000)?"true":"false")."<br />";
  36. echo "2000-02-30=".(IsDateValidISO("2000-02-30")?"true":"false").",".(checkdate(2,30,2000)?"true":"false")."<br />";
  37. echo "2001-02-29=".(IsDateValidISO("2001-02-29")?"true":"false").",".(checkdate(2,29,2001)?"true":"false")."<br />";
  38. echo "2011-01-01=".(IsDateValidISO("2011-01-01")?"true":"false").",".(checkdate(1,1,2011)?"true":"false")."<br />";
  39. echo "2011-00-01=".(IsDateValidISO("2011-00-01")?"true":"false").",".(checkdate(0,1,2011)?"true":"false")."<br />";
  40. echo "2011-01-00=".(IsDateValidISO("2011-01-00")?"true":"false").",".(checkdate(1,0,2011)?"true":"false")."<br />";
  41. echo "2011-13-13=".(IsDateValidISO("2011-13-13")?"true":"false").",".(checkdate(13,13,2011)?"true":"false")."<br />";
  42. echo "2011-12-14=".(IsDateValidISO("2011-12-14")?"true":"false").",".(checkdate(12,14,2011)?"true":"false")."<br />";
  43. ?>

on obtiendra le résultat suivant :

1900-02-29=false,false
2000-02-29=true,true
2000-02-30=false,false
2001-02-29=false,false
2011-01-01=true,true
2011-00-01=false,false
2011-01-00=false,false
2011-13-13=false,false
2011-12-14=true,true


Dernière mise à jour : Mercredi, le 25 mars 2015