2016-06-18 1 views
0

내가 사용중 "사용중"1 개 테이블이 시간 형식의 최소 시간을 표시 : 2 열 : 내가 국지적 인 차이가 최소이어야한다 각 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); 

    ?> 
관련 문제