私は上司の Timeclock アプリケーションに取り組んでおり、クロックインとクロックアウトの時間を DateTime および Timestamp として保存しています。
以下は、ユーザーの出勤日時と退勤日時の間の期間を計算する簡単な関数です。
デモ15:11:18
では、2 つの日付の間に 5 日ほどあるにもかかわらず、結果が表示されることがわかります。関数に単純に日数を表示させることができることはわかっていますが、上司は日数を表示したくありません。代わりに、これは 2 つの DateTime 間の合計時間、分、秒を表示し、日数を表示しないようにする必要があります。
誰かが私を正しい方向に向けたり、適切な時間を表示するのを手伝ったりできますか?
たとえば、2 日余分に追加すると、2 日ではなく 48 時間が時間に追加されます。
public function dateTimeDifference($startDatetime, $endDatetime, $format = '%H:%I:%S')
{
$startDatetime2 = new DateTime($startDatetime, $this->timeZone);
$endDatetime2 = new DateTime($endDatetime, $this->timeZone);
$interval = $startDatetime2->diff($endDatetime2);
return $interval->format($format);
}
$startDatetime = '2013-09-10 07:15:48 pm';
$endDatetime = '2013-09-15 10:27:06 am';
echo dateTimeDifference($startDatetime, $endDatetime)
// Result: 15:11:18