1

2 つの日付があり、それらの間の時間を取得したいと考えています。
私はこれを試します:

$created_dt="2014-01-30 09:27:02";    
$done_dt="2014-01-30 16:29:38";

$created_dt=strtotime($created_dt); //1391066822
$done_dt=strtotime($done_dt); //1391092178
$runing_time= $created_dt-$done_dt; //25356
$runing_time= date('H:i',$runing_time);
echo $runing_time; //  "09:02" <----------??????? 

なぜ $runing_time = 09:02 なのか ???

これを回避する良い方法は何ですか?
ありがとう

パート 2
いくつかの $intervals を合計するにはどうすればよいですか? その後、平均を取得しますか?
私は試します:

   $average_time;
   foreach($tasks as $task)
   {

   $date1 = new DateTime($task['start']);
   $date2 = new DateTime($task['end']);
   $interval = $date1->diff($date2);
   $runing_time=$interval->format("%h hours, %i minutes, %s seconds");
   $average_time+=$interval ;
   }
   $final_average_time=average_time/4;

$interval はオブジェクトであるため、明らかに私のコードは機能しませんでした。

4

3 に答える 3

3

日付計算にはDateTime()andを使用します。はるかに簡単です。DateInterval()

$date1 = new DateTime("2014-01-30 09:27:02");
$date2 = new DateTime("2014-01-30 16:29:38");
$interval = $date1->diff($date2);
echo $interval->format("%h hours, %i minutes, %s seconds");

実際に見る

于 2014-01-30T15:32:29.050 に答える
1

DateTimeを使用してみてください。このdiffメソッドは、2 つの DateTime オブジェクトの差を返します。

$createDate = DateTime::createFromFormat("Y-m-d H:i:s", $created_dt);
$endDate = DateTime::createFromFormat("Y-m-d H:i:s", $done_dt);
$interval = $createDate->diff($endDate2);
echo $interval->format('%R%a days %H hours %i Minutes and %s Seconds');
于 2014-01-30T15:33:58.857 に答える