使用每5分钟后保存的记录计算时间间隔

时间:2015-02-26 07:36:19

标签: php mysql datetime

我在数据库中有记录,如

id      Time
1       25-02-2015 18:20
2       25-02-2015 18:25
3       25-02-2015 18:30
4       25-02-2015 18:45
5       25-02-2015 18:50
6       25-02-2015 18:55

我想添加1到3和4到6的时间间隔, 并且只显示两个记录,而不是全部六个记录。

我尝试过但很容易混淆这个简单的(可能是)任务

foreach($list as $i => $listInfo){
        if(isset($list[$i+1]['dd_data']))
        {
            $nexttime = $list[$i+1]['dd_data'] ; 

            $to_time = strtotime($nexttime);
            $from_time = strtotime($listInfo['dd_data']);
            $diff =  round(abs($to_time - $from_time) / 60,2);
            if($diff<=5)
            {
                $diffsum +=$diff;   
            }
        }else{
                $diffsum = '0'; 
            }


        if($diffsum>=5 && $diff>=5)
        {
        ?>
        <tr class="<?=$class?>">
            <td  class="<?=$leftBotClass?>"><?=$c++?> <?=$diff?></td>               
            <td class="td_br_right left"><?php echo $listInfo['dd_data']; ?> Till next  <?php echo $diffsum; ?> min </td> 
        </tr>
        <?php
        }
    }

谢谢

2 个答案:

答案 0 :(得分:0)

这可能会对您有所帮助:

SELECT t1.id, t1.time, (t2.time - t1.time) AS time_diff
FROM my_table AS t1 INNER JOIN my_table AS t2 ON t2.id = (t1.id + 1)

答案 1 :(得分:0)

试试这段代码。我希望这可以帮到你。

<?php

$array = array(
  array('id'=>'1', 'date'=>'25-02-2015 18:20'),
  array('id'=>'2', 'date'=>'25-02-2015 18:25'),
  array('id'=>'3', 'date'=>'25-02-2015 18:30'),
  array('id'=>'4', 'date'=>'25-02-2015 19:45'),
  array('id'=>'6', 'date'=>'25-02-2015 19:50'),
  array('id'=>'7', 'date'=>'25-02-2015 20:55')
);
//your given sample array from database

$new_arr=array();
$time1=strtotime($array[0]['date']);

foreach($array as $time)
{

$time2=strtotime($time['date']);
$diff=$time2-$time1;

if($diff>0 && $diff<600) //check 5(600 second) minute difference
{

    $time1=strtotime($time['date']);

}
else
{

    $new_arr[]=$time;
    $time1=strtotime($time['date']);
   }

  }

 foreach ($new_arr as $id => $date) 
 {
   echo $date['date']."<br>"; //display dates
 }

 ?>

输出:

  25-02-2015 18:20
  25-02-2015 19:45
  25-02-2015 20:55