Fonction de vérification de la date et de l'heure

Contenu du snippet

La date et l'heure intervienne souvent dans divers projets, comme l'usage d'un calendrier par exemple, il est donc interressent de pouvoir vérifier les dates inscrites par les utilisateurs, afin non seulement de vérifier leurs validités mais aussi pourquoi pas les placer au format de date US, c'est-à-dire AAAA-MM-JJ, qui rappelons-le et le format dans lequel les dates doivent être inserée dans un champ de type "Date" d'une base de donnée.

Les deux fonctions que je vous propose ici, permettent, pour la fonction "Verif_Date($Date)" de vérifier la validité d'une date (returne false en cas d'échec) ainsi que, dans le cas d'une date valable, la retourner en format US, prette a etre inserée dans une table. Ce fonction et interresente sur le fait que l'utilisateur ne doit pas respecter un format de date ou un certain type de séparateur entre les chiffres; la fonction adaptera automatiquement la date au bon format

Exemple:
1/1/2007 retournera 2007-01-01
04-2-06 retournera 2006-02-04
08/03/2007 retournera 2007-03-08

La fonction de vérification de l'heure permet, tout comme la fonction Verif_Date, de remetre en place un heure entrée par l'utilisateur, quelque soit le format qu'il aie appliqué, que se soit 14:00 ou 14H00 ou n'importe quel autre séparateur.

Source / Exemple :


function Zero($Num)
	{
		if($Num < 10 && strlen($Num) < 2)
			$Num = '0'.$Num;
		return $Num;
	}
        function Verif_Date($Date)
	{
		$Pos_1 = substr($Date, 2, 1);
		$Pos_2 = substr($Date, 1, 1);
		if (!(is_numeric($Pos_1)))
			$Separateur  = $Pos_1;
		elseif (!(is_numeric($Pos_2)))
			$Separateur  = $Pos_2;
		else
			return false;
		$Tableau = explode($Separateur, $Date);
		$Jour = Zero($Tableau[0]);
		$Mois = Zero($Tableau[1]);		
		if (strlen($Tableau[2]) == 2)
			$Annee = '20'.$Tableau[2];
		elseif (strlen($Tableau[2]) == 4)
			$Annee = $Tableau[2];
		$Date_SQL = $Annee.'-'.$Mois.'-'.$Jour;
		if (checkdate($Mois, $Jour, $Annee))
			return $Date_SQL;
		else
			return false;
	}
	function Verif_Heure($Heure)
	{
		$Pos_1 = substr($Heure, 1, 1);
		$Pos_2 = substr($Heure, 2, 1);
		if (!(is_numeric($Pos_1)))
			$Separateur  = $Pos_1;
		elseif (!(is_numeric($Pos_2)))
			$Separateur  = $Pos_2;
		else
			return false;
		$Tableau = explode($Separateur, $Heure);
		$Heures = Zero($Tableau[0]);
		$Minutes = Zero($Tableau[1]);
		if (is_numeric($Heures) && is_numeric($Minutes))
		{
			if ($Heures < 24 && $Minutes < 60)
				return $Heures.':'.$Minutes;
			else
				return false;
		}
		else
			return false;		
	}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.