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 :
- <?php
- echo "1,9,2010=" . (checkdate(1,9,2010)?"true":"false") . "<br />";
- echo "01,09,2010=" . (checkdate(01,09,2010)?"true":"false") . "<br />";
- echo "12,03,2011=" . (checkdate(12,03,2011)?"true":"false") . "<br />";
- echo "12,12,03=" . (checkdate(12,12,03)?"true":"false") . "<br />";
- echo "14,12,03=" . (checkdate(14,12,03)?"true":"false") . "<br />";
- ?>
on obtiendra le résultat suivant :
1,09,2010=true01,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 :
- <?php
- function IsLeapYear($Year) {
- return ((($Year & 3) == 0) && (($Year % 100 != 0) || ($Year % 400 == 0)));
- }
-
- function IsDateValidISO($date) {
- $DayInMonth=array(31,28,31,30,31,30,31,31,30,31,30,31);
- $Year = substr($date,0,4);
- switch(substr($date,4,1)) {
- case "/":case "-":case "\\":case ".":
- break;
- default:
- return FALSE;
- }
- $Month = substr($date,5,2);
- switch(substr($date,7,1)) {
- case "/":case "-":case "\\":case ".":
- break;
- default:
- return FALSE;
- }
- $Day = substr($date,8,2);
- if(!is_numeric($Year)) return FALSE;
- if(!is_numeric($Month)) return FALSE;
- if(!is_numeric($Day)) return FALSE;
-
- if((intval($Month) < 1) || (intval($Month) > 12)) return FALSE;
- $NumberOfDay = $DayInMonth[$Month-1];
- if(($Month==2)&&(IsLeapYear($Year))) $NumberOfDay++;
- if((intval($Day) < 1) || (intval($Day) > $NumberOfDay)) return FALSE;
- return TRUE;
- }
-
- echo "1900-02-29=".(IsDateValidISO("1900-02-29")?"true":"false").",".(checkdate(2,29,1900)?"true":"false")."<br />";
- echo "2000-02-29=".(IsDateValidISO("2000-02-29")?"true":"false").",".(checkdate(2,29,2000)?"true":"false")."<br />";
- echo "2000-02-30=".(IsDateValidISO("2000-02-30")?"true":"false").",".(checkdate(2,30,2000)?"true":"false")."<br />";
- echo "2001-02-29=".(IsDateValidISO("2001-02-29")?"true":"false").",".(checkdate(2,29,2001)?"true":"false")."<br />";
- echo "2011-01-01=".(IsDateValidISO("2011-01-01")?"true":"false").",".(checkdate(1,1,2011)?"true":"false")."<br />";
- echo "2011-00-01=".(IsDateValidISO("2011-00-01")?"true":"false").",".(checkdate(0,1,2011)?"true":"false")."<br />";
- echo "2011-01-00=".(IsDateValidISO("2011-01-00")?"true":"false").",".(checkdate(1,0,2011)?"true":"false")."<br />";
- echo "2011-13-13=".(IsDateValidISO("2011-13-13")?"true":"false").",".(checkdate(13,13,2011)?"true":"false")."<br />";
- echo "2011-12-14=".(IsDateValidISO("2011-12-14")?"true":"false").",".(checkdate(12,14,2011)?"true":"false")."<br />";
- ?>
on obtiendra le résultat suivant :
1900-02-29=false,false2000-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