Page 1 sur 2

mktime champ formulaire faux

Posté : 17 juin 2011, 17:37
par surfys
Bonjour,
J’ai un problème, quand j’écris $even =mktime(10, 10, 50, 6, 15, 2011) et que j’insere la variable dans une base msql, j’obtiens un nombre de secondes, c’est OK.
Mais quand je récupère par un $_POST la meme date que je la transforme par mktime en secondes, la valeur n’est pas la même, le fait de passer par un champs change la valeur ???

le code :
$even = mktime($_POST['even']);
//date evenement en dur
$even2 = mktime(18, 10, 00, 6, 17, 2011, 1);

//$even = mktime($even_a );
$sql = "INSERT INTO partenaires (even, even2) VALUES('$even','$even2')";

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 17:46
par Mazarini
Bonjour,

Pour avoir le même résultat, il faudrait passer les mêmes paramètres.

$var = "18, 10, 00, 6, 17, 2011, 1";
$even2 = mktime($var);
et
$even2 = mktime(18, 10, 00, 6, 17, 2011, 1);
ce 'est pas la même chose.

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 17:52
par surfys
je veux récupérer une date future dans un champ la transformer en seconde JUSTE...

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 17:57
par Mazarini
$d = explode(',',$_POST['even']);
$even = mktime($d[0],$d[1]$d[2],$d[3],$d[4],$d[5],$d[6]);  

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 18:14
par surfys
c'est pas bon ça me donne 1341598200 pour $even2 (mktime (18, 10, 0, 6, 17, 2011, 1)
et 1308335400 pour even recuperer dans le champs...bizarre

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 18:17
par Mazarini
Vérifie le contenu des variables $d[0|,... $d[6|
Autrement, j'ai oublié une virgule dans le code.

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 18:23
par surfys
j'ai corrigé la virgule,
j'ai verifié avec var dump

string(24) " 18, 30, 00, 6, 17, 2011"

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 18:45
par Mazarini
Donc il faut ajouter remplacer $d[6] par 1

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 18:52
par surfys
je l'ai fait, c'est pas encore bon
ça donne : even.....1308335400
even2......1341598200

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 19:00
par surfys
voila le code actuel,

$d = explode(',',$_POST['even']);
$even = mktime($d[0],$d[1],$d[2],$d[3],$d[4],$d[5],$d[1]);

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 19:06
par Mazarini
$even = mktime($d[0],$d[1],$d[2],$d[3],$d[4],$d[5],1);

Réfléchi un peu

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 19:56
par surfys
Merci de m'aider....

J'ai du m'absenter..désolé.
c'est pas bon, ça me donne -1

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 20:05
par surfys
Voila le résultat que j'ai

var_dump du CHAMP
string(26) "18, 10, 00, 19, 6, 2011, 1"

EVEN 2 (18, 10, 0, 6, 17, 2011, 1) : 1341598200

EVEN CHAMP : -1


string(2) "-1"

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 20:14
par Mazarini
Voila le résultat que j'ai

var_dump du CHAMP
string(26) "18, 10, 00, 19, 6, 2011, 1"

EVEN 2 (18, 10, 0, 6, 17, 2011, 1) : 1341598200

EVEN CHAMP : -1


string(2) "-1"
tu as inversé mois et jour et remplacer 17 par 19

Le -1 proviens de la mauvaise valeur pour le mois du fais de l'inversion

Re: mktime champ formulaire faux

Posté : 17 juin 2011, 20:44
par surfys
j'attends, le serveur ne répond pas..