mktime champ formulaire faux

Eléphanteau du PHP | 24 Messages

17 juin 2011, 17:37

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')";

ViPHP
ViPHP | 2577 Messages

17 juin 2011, 17:46

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.

Eléphanteau du PHP | 24 Messages

17 juin 2011, 17:52

je veux récupérer une date future dans un champ la transformer en seconde JUSTE...

ViPHP
ViPHP | 2577 Messages

17 juin 2011, 17:57

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

Eléphanteau du PHP | 24 Messages

17 juin 2011, 18:14

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

ViPHP
ViPHP | 2577 Messages

17 juin 2011, 18:17

Vérifie le contenu des variables $d[0|,... $d[6|
Autrement, j'ai oublié une virgule dans le code.

Eléphanteau du PHP | 24 Messages

17 juin 2011, 18:23

j'ai corrigé la virgule,
j'ai verifié avec var dump

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

ViPHP
ViPHP | 2577 Messages

17 juin 2011, 18:45

Donc il faut ajouter remplacer $d[6] par 1

Eléphanteau du PHP | 24 Messages

17 juin 2011, 18:52

je l'ai fait, c'est pas encore bon
ça donne : even.....1308335400
even2......1341598200

Eléphanteau du PHP | 24 Messages

17 juin 2011, 19:00

voila le code actuel,

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

ViPHP
ViPHP | 2577 Messages

17 juin 2011, 19:06

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

Réfléchi un peu

Eléphanteau du PHP | 24 Messages

17 juin 2011, 19:56

Merci de m'aider....

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

Eléphanteau du PHP | 24 Messages

17 juin 2011, 20:05

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"

ViPHP
ViPHP | 2577 Messages

17 juin 2011, 20:14

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

Eléphanteau du PHP | 24 Messages

17 juin 2011, 20:44

j'attends, le serveur ne répond pas..