2015-07-09 2 views
6

У меня есть сценарий, который сосчитать спады времени до начала событияPHP не отображает время из базы данных правильно

enter image description here

даты и время начала извлекаются из базы данных.

Моя проблема

дней рассчитывается правильно, но часов одинаковы для каждого события и не получает правильного расчета

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

СОБЫТИЯ таблица

enter image description here

Снова обратите внимание на 1-изображения, как часы отображаются в виде 13 для обоих событий, даже если это в разное время для обоих событий в базе данных

Любая идея, что я делаю неправильно здесь и как я могу улучшить скрипт?

+0

Вы используете jquery countdown js? – Butterfly

+0

@new_bee_magento no это скрипт php, как вы можете видеть в коде –

+1

http://sandbox.onlinephpfunctions.com/code/5b6ffe97f3bbc23290266c2dbe2ef7afe1b4b1ec вы проходили '$ gameDate' в своем strtime, вы должны вместо этого басировать' $ calcDate' , иначе вы будете strtotime только ** дата **, а не ** datetime **. – briosheje

ответ

2

У вас ошибка в этой строке:

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

Replace $gameDate по $calcDate, который содержит вашу полную дату + время строку, созданную на одну строку перед:

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

Или просто сделать это путь:

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

Рабочий код: http://sandbox.onlinephpfunctions.com/code/128a284a176098ede0dfc7bc18cfc5f7081d2afa

Таким образом, вы избегаете смешивать различные переменные. ;-)

+0

Andre Спасибо, много, я собираюсь реализовать его и сообщить вам результат –

+0

Андре вы не представляете, как я благодарен за вашу помощь, мне жаль, что я не мог сделать больше, чем просто принять ваш ответ, спасибо, что так много работает ! –

Смежные вопросы