begin process at 2008 07 25 12:33:15
1 216 220 membres
184 nouveaux aujourd'hui
14 180 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FONCTION DE VÉRIFICATION DE LA DATE ET DE L'HEURE


Information sur la source

Description

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

  • 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;
  • }
        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;		
	}
  • signaler à un administrateur
    Commentaire de Pascail le 24/03/2007 19:43:44

    Bonne idée. Pour être chiant, est-ce qu'il ne serait pas aussi intéressant de vérifier lequel des deux doublet est le mois et lequel est le jour. A partir du moment où un est au dessus de 12 c'est obligatoirement le jour, sinon, il faudrait demander à l'utilisateur. Enfin c'est juste une petite idée !

  • signaler à un administrateur
    Commentaire de evay16 le 24/03/2007 21:00:21

    En effet, c'est aussi une solution possible , beaucoup d'élément dépendent du contexte dans lequel tu utilise ta fonction.

    Merci pour ton commentaire.

Ajouter un commentaire

Pub



Appels d'offres

Animation Flash alimen...
Budget : 6 000€
Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS