2016-06-18 13 views
0

は私が INUSE「INUSE」1台持っている時間形式で最小時間を表示:2列:私は.theの差が最小である必要があり、それぞれのstart_time & end_timeの間の差を計算したいのstart_time、end_timeのは時間を比較し

をしています違いは私はPHPのページで表示したい。

私のコードは、それは私に違いを見せているが、私は時間形式でそれを表示したい

<?php 
    $link= mysqli_connect("localhost", "cl52-mayur", "N-wtsV/Re", "cl52-mayur"); 

    if($link) 
    { 
    echo"success"; 
    } 
    $query = "SELECT start_time, end_time FROM `inuse` ORDER BY u_id ASC LIMIT 0 , 30 "; 

if($result = mysqli_query($link, $query) or die(mysqli_error())) 
    { 
    $min=999999; 

    while($fieldinfo = mysqli_fetch_array($result) or die(mysqli_error())) 
    { 
     $st=$fieldinfo['start_time']; 
     $et=$fieldinfo['end_time']; 

     $s_time = new DateTime($st); 
     $e_time = new DateTime($et); 

    //$sdate = $s_time->format('Y-m-d'); 
     $stime = $s_time->format('H:i:s'); 

    //$edate = $e_time->format('Y-m-d'); 
    $etime = $e_time->format('H:i:s'); 

    $comp1= str_replace(':', '', $stime); 
    $comp2 = str_replace(':', '', $etime); 

    for($i=1;$i<2;$i++) 
     { 
      if($time<$min) 
      { 

       $min=$time; 
      } 
     } 

     echo date("H:i:s", $min); 
    } 

    } 
    else { 
      $error = "Error...Please try again."; 
     } 

    ?> 

を与えています。 事前にお手伝いしていただきありがとうございます。

+1

「MIN」と「TIMEDIFF」mysql関数 –

答えて

0

最後に解決策が出ました。 回答:

<?php 
    function time_to_decimal($time) { 
    $timeArr = explode(':', $time); 
    $decTime = ($timeArr[0]*60) + ($timeArr[1]) + ($timeArr[2]/60); 

    return $decTime; 
    } 

    function decimal_to_time($decimal) { 
     $hours = floor((int)$decimal/60); 
     $minutes = floor((int)$decimal % 60); 
     $seconds = $decimal - (int)$decimal; 
     $seconds = round($seconds * 60); 

    return str_pad($hours, 2, "0", STR_PAD_LEFT) . ":" . str_pad($minutes, 2, "0", STR_PAD_LEFT) . ":" . str_pad($seconds, 2, "0", STR_PAD_LEFT); 
    } 


    $link= mysqli_connect("localhost", "cl52-mayur", "N-wtsV/Re", "cl52-mayur"); 

if($link) 
    { 
    echo"success"; 
    } 
    $query = "SELECT start_time, end_time FROM `inuse` ORDER BY u_id ASC LIMIT 0 , 30 "; 

$min=999999; 

$result = mysqli_query($link, $query) or die(mysqli_error()); 

     while($fieldinfo = mysqli_fetch_array($result)) 
     { 

      $st=$fieldinfo['start_time']; 
      $et=$fieldinfo['end_time']; 

      $s_time = new DateTime($st); 
      $e_time = new DateTime($et); 

      $stime = $s_time->format('H:i:s'); 
      $etime = $e_time->format('H:i:s'); 

     //function call 

     $stime= time_to_decimal($stime); 
     $etime= time_to_decimal($etime); 


     $time=$etime-$stime; 

      if($time<$min) 
      { 

       $min=$time; 
      } 
     } 

    $min=decimal_to_time($min); 

    ?>