2015-07-09 6 views
6

Ich habe ein Skript, das Tiefen der Zeit, bis ein EreignisPHP nicht die Zeit aus der Datenbank korrekt angezeigt

enter image description here

Startdatum starten zählen und die Startzeit aus einer Datenbank abgerufen werden.

Mein Problem

Tage richtig berechnet, aber Stunden sind die gleichen für jedes Ereignis und nicht richtig Tabelle

while(){ 
$gameDate = $row['event_date']; 
$time=$row['event_time']; 

     $calcDate = $gameDate.$time; 
     $calcDate = strtotime(str_replace('/', '-', $gameDate)); 
     $remaining = $calcDate - time(); 
     $days_remaining = floor($remaining/86400); 
     $hours_remaining = floor(($remaining % 86400)/3600); 
} 

EVENTS

enter image description here berechnet bekommen

bemerken Auch im ersten Bild, wie Stunden, wie 13 für beiden Veranstaltungen angezeigt werden, auch wenn es unterschiedliche Zeiten für beiden Veranstaltungen in der Datenbank

Jede Idee, was ich hier falsch mache oder wie ich kann die Verbesserung der Skript?

+0

verwendest du jquery countdown js? – Butterfly

+0

@new_bee_magento nein das ist ein PHP-Skript, wie Sie im Code sehen können –

+1

http://sandbox.onlinephpfunctions.com/code/5b6ffe97f3bbc23290266c2dbe2ef7afe1b4b1ec Sie passierten '$ gameDate' in Ihrer Zeit, sollten Sie statt" $ calcDate "bass sein Andernfalls wird nur das ** Datum ** und nicht das ** Datum Uhrzeit ** angezeigt. – briosheje

Antwort

2

Sie haben einen Fehler in dieser Zeile:

$calcDate = strtotime(str_replace('/', '-', $gameDate)); 

ersetzen $gameDate von $calcDate, die Ihre vollständige Datum enthält + Zeit-String Sie eine Zeile vor erstellt:

$calcDate = strtotime(str_replace('/', '-', $calcDate)); 

Oder einfach es dies machen weg:

$data = array(
    array('event_date' => '2015-07-13', 'event_time' => '15:00'), 
    array('event_date' => '2015-07-11', 'event_time' => '20:00') 
); 

foreach ($data as $row) { 
    $calcDate = strtotime(str_replace('/', '-', $row['event_date'].$row['event_time'])); 
    $remaining = $calcDate - time(); 
    $days_remaining = floor($remaining/86400); 
    $hours_remaining = floor(($remaining % 86400)/3600); 
    echo $days_remaining." ".$hours_remaining."\n"; 
} 

Arbeitscode: http://sandbox.onlinephpfunctions.com/code/128a284a176098ede0dfc7bc18cfc5f7081d2afa

Sie vermeiden also, die verschiedenen Variablen zu verwechseln. ;-)

+0

Andre Vielen Dank so viel, ich werde es implementieren und Ihnen das Ergebnis mitteilen –

+0

Andre Sie haben keine Ahnung, wie dankbar ich für Ihre Hilfe bin, ich wünschte, ich könnte mehr als nur Ihre Antwort akzeptieren, danke sooo sehr, es funktioniert super ! –

Verwandte Themen