2015-07-09 25 views
6

Tôi có một kịch bản mà đếm trầm thời gian cho đến khi một sự kiện bắt đầuPHP không hiển thị thời gian thực từ cơ sở dữ liệu một cách chính xác

enter image description here

Ngày bắt đầu và thời gian bắt đầu được lấy từ một cơ sở dữ liệu.

My Vấn đề

ngày được tính một cách chính xác nhưng giờ đều giống nhau cho mỗi sự kiện và không được tính toán một cách chính xác

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

SỰ KIỆN bảng

enter image description here

Một lần nữa chú ý trong hình ảnh 1 cách giờ được hiển thị như 13 cho cả hai sự kiện mặc dù nó là thời điểm khác nhau cho cả hai sự kiện trong cơ sở dữ liệu

Bất kỳ ý tưởng những gì tôi đang làm sai ở đây hoặc làm thế nào tôi có thể nâng cao kịch bản?

+0

bạn đang sử dụng jquery đếm ngược js? – Butterfly

+0

@new_bee_magento không có đây là tập lệnh php như bạn có thể thấy trong đoạn mã –

+1

http://sandbox.onlinephpfunctions.com/code/5b6ffe97f3bbc23290266c2dbe2ef7afe1b4b1ec bạn đã chuyển '$ gameDate' vào strtime của bạn, bạn nên thay vì bass' $ calcDate' , nếu không bạn sẽ chỉ strtotime ** ngày ** và không phải là ** datetime **. – briosheje

Trả lời

2

Bạn có một lỗi trong dòng này:

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

Thay $gameDate bởi $calcDate trong đó có ngày đầy đủ của bạn + chuỗi thời gian mà bạn đã tạo một dòng trước:

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

Hoặc chỉ cần làm cho nó này cách:

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

Mã số làm việc: http://sandbox.onlinephpfunctions.com/code/128a284a176098ede0dfc7bc18cfc5f7081d2afa

Vì vậy, bạn tránh trộn lẫn các biến khác nhau. ;-)

+0

Andre Cảm ơn bạn rất nhiều, tôi sẽ thực hiện nó và cho bạn biết kết quả –

+0

Andre bạn không biết làm thế nào biết ơn tôi vì sự giúp đỡ của bạn, tôi ước tôi có thể làm nhiều hơn là chấp nhận câu trả lời của bạn, cảm ơn bạn rất nhiều ! –

Các vấn đề liên quan