Probleme mktime
Avril
-
Yoan Messages postés 11905 Statut Modérateur -
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
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
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"; ?>
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 :
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 ';