【问题标题】:Compare Time and show minimum time in Time format比较时间并以时间格式显示最短时间
【发布时间】:2016-06-18 18:26:41
【问题描述】:

我有 1 张桌子“正在使用” inuse: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.";
        }

    ?>

它向我展示了差异,但我想以时间格式展示。 请帮助并在此先感谢您。

【问题讨论】:

  • MINTIMEDIFF mysql 函数

标签: php


【解决方案1】:

终于找到解决办法了。 答:

  <?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);

     ?>

【讨论】:

    猜你喜欢
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 2013-04-22
    相关资源
    最近更新 更多