Soustraire deux heures en PHP

Résolu/Fermé
ThePico20 Messages postés 102 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 21 décembre 2014 - 18 janv. 2014 à 13:17
ThePico20 Messages postés 102 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 21 décembre 2014 - 18 janv. 2014 à 16:36
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 ?




A voir également:

3 réponses

devweb Messages postés 26 Date d'inscription vendredi 2 avril 2010 Statut Membre Dernière intervention 23 août 2020 10
18 janv. 2014 à 14:53
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
11
ThePico20 Messages postés 102 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 21 décembre 2014 1
18 janv. 2014 à 15:32
OMG, j'aimerais t'embrasser :)
0
ThePico20 Messages postés 102 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 21 décembre 2014 1
18 janv. 2014 à 16:36
Autant pour moi, dans ma requete j'ai juste trier la date en décroissant et le debut en croissant.
0
ThePico20 Messages postés 102 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 21 décembre 2014 1
18 janv. 2014 à 15:39
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
ThePico20 Messages postés 102 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 21 décembre 2014 1
18 janv. 2014 à 15:46
Donc je pensais me servir de mon $Start
0