1
function timeDiff($firstTime,$lastTime){
   $firstTime=strtotime($firstTime);
   $lastTime=strtotime($lastTime);

   $timeDiff=$lastTime-$firstTime;

   return $timeDiff;
}


$fromDate = "2013-11-15 09:00:00";
$toDate = "2013-11-15 18:00:00";

$difference = timeDiff($fromDate,$toDate);

现在我得到了它以秒为单位的减去值,我已经将它转换为时间,我的问题是如果我选择的午餐时间在 $fromDate 和 $toDate 之间,我如何自动减去午休时间。

例如。

lunch is 12pm to 1pm;

$fromDate = "2013-11-15 09:00:00";
$toDate = "2013-11-15 18:00:00";

我在这里有 9 个小时,但我只需要 8 个小时,因为它在我选择的 $fromDate 和 $toDate 之间打了午休时间或午休时间。

任何帮助请

4

1 回答 1

0
$fromDate = "2013-11-15 09:00:00";
$toDate = "2013-11-15 12:00:00";

$difference = timeDiff($fromDate,$toDate);
echo $difference;

function timeDiff($firstTime,$lastTime){

    $datetime1 = new DateTime($firstTime);
    $datetime2 = new DateTime($lastTime);

    $lunchtime = new DateTime('2013-11-15 12:00:00');

  $interval = $datetime1->diff($datetime2);
  if($datetime2 > $lunchtime)
  {
      $real_interval=$interval->h;
      $real_interval=$real_interval-1;

  }
  else
  $real_interval=$interval->h;

   return $real_interval;
}
于 2013-11-12T08:06:31.267 回答