2015-02-26 5 views
-1

у меня есть записи в базе данных, каквычислить интервал времени, используя запись сохраняется после каждых 5 мин

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

Благодарности

+1

, что у пытался до сих пор? –

+1

см. Edit please –

+0

Вы хотите рассчитать интервал в 5 минут в ваших данных? или кто-нибудь еще думает? –

ответ

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) 
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 
Смежные вопросы