2015-07-09 12 views
6

Ho uno script che contano bassi il tempo fino un evento AvviaPHP non visualizzare il tempo dal database correttamente

enter image description here

Data di inizio e l'ora di inizio viene recuperato da un database.

mio problema

giorni è calcolato correttamente, ma ora sono gli stessi per ogni evento e non viene calcolato correttamente

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); 
} 

tavolo EVENTI

enter image description here

Sempre avviso nella prima immagine come ora vengono visualizzati come 13 per entrambi gli eventi anche se è tempi diversi per entrambi gli eventi nel database

Qualsiasi idea di quello che sto facendo male qui o come posso migliorare la sceneggiatura?

+0

stai usando jquery countdown js? – Butterfly

+0

@new_bee_magento no questo è uno script php come potete vedere nel codice –

+1

http://sandbox.onlinephpfunctions.com/code/5b6ffe97f3bbc23290266c2dbe2ef7afe1b4b1ec stavate passando '$ gameDate' nel vostro strtime, dovreste essere invece a bassare' $ calcDate' , altrimenti basterà solo la ** data ** e non il ** datetime **. – briosheje

risposta

2

c'è un errore in questa linea:

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

Sostituire $gameDate da $calcDate che contiene la data completa + stringa di tempo si è creato una linea prima:

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

O semplicemente rendere questo way:

$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"; 
} 

Codice di lavoro: http://sandbox.onlinephpfunctions.com/code/128a284a176098ede0dfc7bc18cfc5f7081d2afa

Così si evita di mescolare le diverse variabili. ;-)

+0

Andre Grazie mille, lo implementerò e ti farò sapere il risultato –

+0

Andre non hai idea di quanto sono grato per il tuo aiuto, vorrei poter fare di più che accettare semplicemente la tua risposta, grazie mille così tanto funziona alla grande ! –

Problemi correlati