如何在php中将值作为时间返回

我很可能是时间求和函数的返回值作为时间。


function GetApprovedOt($connect,$emp_id,$passmonth)

  {

      $query01 ="SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `ot_hour` ) ) ) AS timeSum 

                 FROM otresquest

                 WHERE em_id = $emp_id AND  from_month LIKE '$passmonth%' AND overtime_status=6";

      $statement = $connect->prepare($query01);


      if($statement->execute())

      {  


        $result = $statement->fetchAll();

        foreach($result as $row){


              $sum =$row["timeSum"];

              return $sum;

             }


       }

  } 

我的可能是上面的函数返回超过 24 小时的时间。120:20:00但我很可能无法在条件正确的情况下比较这个值。所以我需要格式返回值作为时间变量。我该怎么做?


笔记


  function formatHours($time){

    $date = explode(':', $time);

    return ($date[0]*60*60)+($date[1]*60)+$date[2];

    } 

上面的函数变量转换为时间。在我的情况下,我不能直接应用, formatHours(GetApprovedOt($connect,$row["emp_id"],$_GET["month"]))因为它会得到通知和警告


Warning: A non-numeric value encountered in C:\xampp\htdocs\attendance\admin\report05.php on line 321


Notice: Undefined offset: 1 in C:\xampp\htdocs\attendance\admin\report05.php on line 321


Notice: Undefined offset: 2 in C:\xampp\htdocs\attendance\admin\report05.php on line 321

我如何处理这个案子? 更新 GetApprovedOt 函数 var_dump 返回为


POPMUISE
浏览 71回答 1
1回答

米琪卡哇伊

我认为问题是GetApprovedOt函数总是不返回时间值。你应该改变你的函数如下function GetApprovedOt($connect,$emp_id,$passmonth){    $query01 ="SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `ot_hour` ) ) ) AS timeSum                FROM otresquest               WHERE em_id = $emp_id AND  from_month LIKE '$passmonth%' AND overtime_status=6";    $statement = $connect->prepare($query01);    if($statement->execute())    {          $result = $statement->fetchAll();        foreach($result as $row){            if ($row["timeSum"] != NULL) {                $sum =$row["timeSum"];                return $sum;            } else {                return '00:00:00';            }        }     }}现在你可以通过formatHours(GetApprovedOt($connect,$row["emp_id"],$_GET["month"]))
打开App,查看更多内容
随时随地看视频慕课网APP