probleme de date

Invité
Invité n'ayant pas de compte PHPfrance

10 janv. 2006, 14:41

bonjour,

sur mon site le membre va s'abonner et si la transaction est correcte, j'affiche un message qui confirme jusqu'a quand son abonnement est valide. voici la partie du script en question ci dessous
<?
$seconde = date('s');
$Minute = date("i"); 
$Heure = date("H"); 
$Mois = date("m"); 
$Jour = date("d"); 
$Annee = date("Y"); 


$fin_allopass24 = date("Y-m-d H:i:s", mktime($Heure, $Minute, $seconde, $Mois, $Jour+1, $Annee)); 

mysql_query("UPDATE membres SET fin_abonn='$fin_allopass24' WHERE pseudo='".$_SESSION["pseudo"]."'") or die (mysql_error()) ;

$fin_abonn_date = date('Y-m-d',$fin_allopass24);
$fin_abonn_heure = date('H:i:s',$fin_allopass24);
?>
Félicitation,<BR><BR>
Votre transaction c'est déroulé sans problemes, il prendra fin le <? echo $fin_abonn_date; ?> à <? echo $fin_abonn_heure; ?>
le probleme est que sur la page de confirmation je voie ceci:
Félicitation,

Votre transaction c'est déroulé sans problemes, il prendra fin le 1970-01-01 à 01:33:26
quelq'un aurais il une idée de l'origine de ce probleme?

ViPHP
ViPHP | 2144 Messages

10 janv. 2006, 14:47

1/1/1 1970 à 0h00 est la date de référence pour les timestamp. Il faut donc croire que tu as une valeur de 0 dans la variable que tu utilises pour la "construction" de la date fin.

Tu utilises une date comme variable pour construire une autre date, ce qui pose problême.

Invité
Invité n'ayant pas de compte PHPfrance

10 janv. 2006, 14:51

$fin_allopass24 est tout à fait correct

ce qui pose probleme est ci dessous mais je l'avais déjà fait et ca fonctionnais c'est pour ca que je ne comprend pas pourquoi ca ne marche pas.

$fin_abonn_date = date('Y-m-d',$fin_allopass24);
$fin_abonn_heure = date('H:i:s',$fin_allopass24);

Mammouth du PHP | 19672 Messages

10 janv. 2006, 15:22

À quelle valeur correspond ta variables $fin_allopass24 ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

10 janv. 2006, 15:32

si le membre renouvelle son abonnement aujourd'hui à 14h30 la valeur de $fin_allopass24 correspondra à 2006-01-11 14:30:00

ViPHP
ViPHP | 2144 Messages

10 janv. 2006, 15:35

cfr la doc php sur la fonction date :
http://php.belnet.be/manual/fr/function.date.php

Invité
Invité n'ayant pas de compte PHPfrance

10 janv. 2006, 15:46

j'ai beau chercher dans la doc ça ne m'avance en rien...

Mammouth du PHP | 19672 Messages

10 janv. 2006, 15:51

Pourtant... le second paramètre de date() doit être un timestamp et non une date formatée, regarde un peu plus bas dans la même page de la doc, tu as des exemples.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: