PHP无法正确显示数据库中的时间

时间:2015-07-09 11:01:52

标签: 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

再次注意第一张图片中两个事件的小时数如何显示为13,即使数据库中两个事件的时间不同

知道我在这里做错了什么或者我如何改进脚本?

1 个答案:

答案 0 :(得分:2)

此行中有错误:

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

$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

所以你要避免混淆不同的变量。 ; - )