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;		
	}

Commentaires et avis

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

Discussions en rapport avec ce code source dans le forum

format de date et time en c+ [ par tertulia ] comment modifier le format de la date c'est dire remplacer les / par - et de l'heure càd remlacer : par - voilac pour pouvoir creer un fichier avec la verifier date formulaire [ par thezuzu ] Bonjour, je ne c'est pas si cette question a deja ete pose alors je la demande quand je voudrais avoir un code en php ou javascript qui verifirait si Envoie de mail selon une heure et une date donnée stockée [ par vw91 ] Bonjour, Je fais appel à vous car je cherche à réaliser une chose assez particulière. Je m'explique, je voudrai créer une application php qui permet Chargement d'une date farfelue avec la fonction STRTOTIME [ par ecolom ] Bonjour les z'amis, je ressors mes rames pour un bon moment... pfffffffffffffj'ai un petit soucis avec la commande STRTOTIME.En fait, je désirais affi Temps en heure entre deux date/heure [ par Eliays ] Bonjour, comment calculer le nombre d'heure entre deux date? Par exemple j'ai 01-10-2008/22:00 et 02-10-2008/15:00. Voila je ne vois pas comment d Probleme de date [ par davidcian ] Bonjour,Bon la je tourne en rond depuis un moment...Je vous explique:2 variables (string):$date_deb = $_POST['date1']; =&gt; au format 12/03/2008 $dat heure et date [ par jamelzzz ] bonjour,j'ai crée  un code qui affiche l'heure automatique.il marche trés  bien lorsque on appuie sur actualiser(F5).maintenant au  desous de cette  c Incrémenter date et l'heure [ par vincej ] bonjour,Je cherche à incrémenter la date et l'heure actuelle, dans la base.Voici mon code://////////PHP///////////////////////////////$query = "INSERT Convertion d'une date Timestamp au format RSS [ par christobal ] Bonjour, les articles qui sont écrit sont enregistré en base avec comme date un timestamp de 14 chiffres.J'aimerais le récupérer pour le mettre dans l Explode ou replace string [ par Burnside ] Bonjour,Je recupère de mon calendrier une date au format : 20071119 qui est encodée de cette façon : $PHP_SELF.'event.php?date=%%dd%%';$jour= $_GET['d


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,905 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.