alone06
Messages postés115Date d'inscriptionmardi 9 novembre 2010StatutMembreDernière intervention18 mai 2016
-
2 juin 2014 à 06:05
alone06
Messages postés115Date d'inscriptionmardi 9 novembre 2010StatutMembreDernière intervention18 mai 2016
-
2 juin 2014 à 17:27
Bonjour,
j'essaye d'afficher la durée qui reste jusqu'à un jour défini de la semaine avec un script php mais à chaque fois j'ai des erreurs différentes
- dans le cas ou le jour n'est pas encore arrivé, je n'ai pas le chiffre exacte j'ai un jour de plus (l'exemple pour demain m'affiche en ce moment 1 jour, 20 heures, 1 minute et 5 s alors qu il devrait etre 0 jour, 19 heures, 1 minute et 5 s.
- Si on est dans le jour demandé, j'ai un affichage négatif l'exemple d aujourd'hui m affiche : Il reste : -0 jour, -4 heure, -1 minute et -59 s. alors qu'il devrait m'afficher le tps restant pour Lundi prochain.
voila mon code :
<?php
function AuPluriel($chiffre) {
if($chiffre>1) {
return 's';
};
}
//récupère le temps du jour en seconde (à partir du temps 0 du calendrier :1 janvier 1970)
$jour=time();
// initialise à 0 le nombre de jours
$nb=0;
//date("l",$jour) donne le nom du jour
while (date("l",$jour)!="Monday")
{
// ajouter 1 au nombre de jours
$nb++;
//passer au jour suivant (60*60*24 secondes par jour)
$jour=$jour+60*60*24;
}
$j=date("j")+$nb;
$m = date("m");
$annee = date('Y');
$sun = mktime(0, 0, 1, $m, $j, $annee);
$tps_restant = $sun - time();
//============ CONVERSIONS
$i_restantes = round($tps_restant / 60);
$H_restantes = round($i_restantes / 60);
$d_restants = round($H_restantes / 24);
$s_restantes = floor($tps_restant % 60); // Secondes restantes
$i_restantes = floor($i_restantes % 60); // Minutes restantes
$H_restantes = floor($H_restantes % 24); // Heures restantes
$d_restants = floor($d_restants); // Jours restants
//==================
//setlocale(LC_TIME, 'fr', 'fr_FR', 'fr_FR.ISO8859-1');
setlocale(LC_ALL, 'fr_FR');
echo 'Il reste : <strong>'. $d_restants .' jour'.AuPluriel($d_restants).'</strong>, <strong>'. $H_restantes .' heure'.AuPluriel($H_restantes).'</strong>,'
. ' <strong>'. $i_restantes .' minute'.AuPluriel($i_restantes).'</strong> et <strong>'. $s_restantes .' s</strong>.';
?>