Soustraire deux heures en PHP

Résolu
Bonjour,

J'aimerais soustraire deux heures,
J'ai ce code (Qui fonctionne à moitié) :
$h1 = strtotime($heure);
$h2 = strtotime($info['debut']);
$Start = date("H:i:s", $h2-$h1);
echo $Start;

Il consiste à normalement m'afficher le temps restant avant le commencement d'un live: ($info['debut] = stocké dans une bdd & $heure étant l'heure actuel) Mais ca ne fonctionne pas, par exemple:

$h1 = strtotime(13:17);
$h2 = strtotime("13:30:00");
$Start = date("H:i:s", $h2-$h1);
echo $Start


Start affiche 01:12:44 (Il afficherais donc une heure de trop, mais pourquoi ?)

Quelqu'un pourrait m'aider ?



--
Désolé de te décevoir, la vie ne se trouve pas dans les Tutoriels.

3 réponses

  1. Tu peux utiliser gmdate au lieu de date, tu n'auras plus le décalage.

    $h1 = strtotime("13:17:00");
    $h2 = strtotime("13:30:00");
    $Start = gmdate("H:i:s", $h2-$h1);
    echo $Start
    1. OMG, j'aimerais t'embrasser :)
  2. Autant pour moi, dans ma requete j'ai juste trier la date en décroissant et le debut en croissant.
    1. Par contre, j'ai pas envie de recréer un autre topic, mais, j'ai dans ma base de donné la colonne "debut" et la colonne "fin" qui correspondent aux début et à la fin d'un live. J'aimerais afficher les 4 prochaines lives qui va y avoir. Pour ça j'utilise cette boucle:

      $reponse = $bdd->query("SELECT * FROM planning ORDER BY date DESC LIMIT 0, 4"); // REQUETE SQL
        while($info = $reponse->fetch()) // BOUCLE QUI AFFICHE LES 4 PROCHAINS LIVE
        {
          if($date<=$info['date'])
          {
          list($annee,$mois,$jour) = explode('-',$info['date']); // RECUPERATION DU JOUR
          $day = date("l", $jour);
          $day = TraduireDate($day);
          $month = date("F", $mois);
          $month = TraduireDate($month);
          
          list($heureD,$minuteD,$secondeD) = explode(':',$info['debut']);
          list($heureF,$minuteF,$secondeF) = explode(':',$info['fin']);
      
          echo "<li><a href='1'><img src='images/planning.png'/><div class='fade'>Live par <b>".$info['streamer']."</b><br/>sur <b>".$info['jeux']."</b></br>Le <b>".$day." ".$jour." ".$month."</b> de <b>".$heureD.":".$minuteD." à ".$heureF.":".$minuteF."</b>.</div></a></li>"; // AFFICHAGE DES 4 PROCHAINS LIVES
          }
        }
      


      Mais il affiche dans n'importe quel ordre. (Les 4 prochaines oui mais dans n'importe quelle ordre)
      1. Donc je pensais me servir de mon $Start