これを出力するにはどうすればよいですか
HH:MM形式?
$to_time = strtotime("2008-12-13 10:42:00"); <--AM
$from_time = strtotime("2008-12-14 8:21:00"); <-- PM
$stat = round(abs($to_time - $from_time) / 60,2). "min";
これから得たのは1299分です
しかし、私はそれを出力する方法を理解できません
21時41分
まず、8:21:00
を使用して特に指定しない限り、 は午前 8 時と解釈されますDateTime::createFromFormat()
。
時差を計算するには、次を使用しますDateTime::diff()
。
$to = new DateTime("2008-12-13 10:42:00");
$from = new DateTime("2008-12-14 8:21:00");
$stat = $to->diff($from); // DateInterval object
echo $stat->format('%Hh:%Im');
これにより、2 つの時刻の時差が表示されますが、最大 24 時間までです。
24 時間以上必要な場合は、次の操作を行う必要があります。
$hours = $stat->days * 24 + $stat->h;
$minutes = $stat->i;
printf('%02sh:%sm', $hours, $minutes);
まず、日付文字列に AM と PM を含める必要があります。そうしないと、次の2008-12-14 8:21:00
ように解釈されます。8:21 AM
現在、2 つの日付の違い2019
は 33 時 19 分です。24 時間制しかサポートしていないため、標準の日付形式を使用することはできません。$stat
整数のままにして、次のsprintf
ように表示する必要があります。
echo sprintf('%02dh:%02dm', $stat/60, $stat%60);