Probleme mktime

Avril -  
Yoan Messages postés 11905 Statut Modérateur -
Bonjour,

Je suis en train de chercher a calculer le nombre de jours entre la date d'aujourd'hui et un prochaine date.
J'utilise donc la fonction mktime :

<?php

$date=date("Y-m-d");

$an= substr($date, 0, 4);
$mois= substr($date, 5, 2);
$jour= substr($date, 8, 2);

$an2= 2009;
$mois2= 7;
$jour2= 24;

$timestamp = mktime(0, 0, 0, $mois, $jour, $an);
$timestamp2 = mktime(0,0,0, $mois2, $jour2, $an2 );

$temps= ($timestamp2 - $timestamp)/86400;
$tempsb= round($temps);

echo ' Il reste . $tempsb . jours avant le 24/07/09 ';

?>

J'ai essayé ceci, mais a chaque chargement de page, cela affiche un nombre de jours different !
J'ai essayé aussi d'ecrire 07pour $mois2 mais c'est toujours le meme probleme.

Merci de votre aide

4 réponses

Yoan Messages postés 11905 Statut Modérateur 2 332
 
Pourquoi faire simple quand on peut faire compliqué ?
<?php

$jour=28;
$mois=07;
$annee=2009;

$tempsb=floor((mktime(0, 0, 0, $mois, $jour, $annee)-time())/86400);

echo "Il reste $tempsb jours avant le $jour/$mois/$annee";

?>
1
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Normalement ça n'affiche pas un nombre de jours différents mais ça affiche :
Il reste . $tempsb . jours avant le 24/07/09 O:-)

Le problème c'est qu'à la dernière ligne tu insères la variable $tempsb à l'intérieur de simples quotes : elle n'est donc pas interprétée.

Deux façon de faire : Soit remplacer les simples quotes par des doubles quotes, soit faire correctement la concaténation en fermant les deux chaînes :
echo ' Il reste ' . $tempsb . ' jours avant le 24/07/09 ';
0
Avril
 
C'est fait, mais a chaque chargement de page ça affiche, soit 26, 24, 30 ou plein de nombres differents ^^
0
Avril
 
Help !
0