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 時間取得していますが、昼休みに当たった、または昼休みが選択した $fromDate と $toDate の間にあるため、8 時間だけ必要です。

助けてください

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 に答える