Vérifier format date et heure.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Vérifier format date et heure.

par Truc » 04 nov. 2008, 10:57

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

par hub73 » 03 nov. 2008, 21:30

Merci beaucoup pour votre aide, je comprends mieux maintenant. La fonction checkdate renvoi un message d'erreur mais c'est tout à fait normal. Encore une fois merci !

par Truc » 03 nov. 2008, 15:12

Il te manque ces fameux délimiteurs, regarde la doc de preg_match().... souvent utilisé / ou #

Pour tester tes expression régulières

Le dernier "+" ne sert à rien ;-)

par Berzemus » 03 nov. 2008, 15:10

Les expressions régulières, sous php, demandent un caractère pour délimiter le début et la fin de la chaine. Peu importe lequel, tant qu'il soit échappé à l'intérieur de l'expression. D'habitude, on utilise # :

Code : Tout sélectionner

"#^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}+$#"
Mais personnellement j'utilise plutôt le |, mais bon, c'est accessoirement un opérateur logique (ou) dans les expressions régulières, donc je ne le conseillerais pas.

par hub73 » 03 nov. 2008, 14:50

Bon j'ai beau y travailler je ne vois pas ou est l'erreur dans l'expression régulière. Au secours !

par Invité » 03 nov. 2008, 08:58

function Valider_date ($Chaine)
{
	if (preg_match("^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}+$", $Chaine))
	{ 
		if (checkdate ($Chaine) == true)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}	
}


Erreur : No ending delimiter '^' found

par hub73 » 03 nov. 2008, 08:54

Ok merci, sinon la syntaxe est bonne parce que je recois un message d'erreur de la fonction ?

par Ryle » 03 nov. 2008, 01:06

Entre accolades tu indiques le nombre d'occurences :
[0-9]{4} : indique un caractère de 0 à 9, présent 4 fois
[0-9]{1} : indique un caractère de 0 à 9, présent une seule fois

En gros, pour le moment tu testes ce masque : "aaaa-m-j h:m:s" :)

par hub73 » 02 nov. 2008, 22:12

J'ai testé çà mais ca marche pas :
function Valider_date ($Chaine)
{
	if (eregi("^[0-9]{4}-[0-9]{1}-[0-9]{1} [0-9]{1}:[0-9]{1}:[0-9]{1}+$", $Chaine) == true)
	{ 
		if (checkdate ($Chaine) == true)
		{
			return true;
		}
		else
		(
			return false;
		}
	}
	else
	{
		return false;
	}	
}
[/php]

pour verifier aaaa-mm-jj hh:mm:ss
2008-07-09 16:41:00

Merci de votre aide.

par Invité » 02 nov. 2008, 21:55

Ok merci, j'ai retrouvé un bouquin qui traite de çà, je vais essayer.

par Ryle » 02 nov. 2008, 21:09

Pour respecter un masque de saisie, rien ne vaut les expressions régulières :)

Regarde du côté de preg_match() :)

Vérifier format date et heure.

par hub73 » 02 nov. 2008, 17:17

Bonjour,
J'ai lu tout un tas de tutoriels au sujet de la date, mais je ne trouve pas ceci :

Je veux que l'utilisateur rentre une date au format mysql dans le champ de mon formulaire.

par exemple : 2008-11-02 16:09

Je veux juste vérifier que cette date est correcte et que l'utilisateur respecte bien le format :

aaaa-mm-jj hh:mm

Merci de votre aide !

Bonne journée.