ある期間 ("H:i" など) を格納する DateTime() オブジェクトの配列があります。この配列のすべての要素を合計して合計期間を取得するにはどうすればよいですか?
また、合計時間が 23 時 59 分よりも長い場合は、さらに多くの日数を取得できる必要があることも考慮に入れる必要があります。
これは可能ですか?
私はこのようにしようとしていました:
$duration = new DateTime('00:00');
foreach($routes as $route) {
$arrival_time = new DateTime();
$arrival_time->setTimestamp($route->arrival_time);
$departure_time = new DateTime();
$departure_time->setTimestamp($route->departure_time);
$leg_duration = $arrival_time->diff($departure_time);
$duration->add($leg_duration);
}
しかし、$duration
私は時間を間違えました。
PS
使用する$duration->add($leg_duration);
と、時間から減算され"24:00"
ます。なぜですか? たとえば$leg_duration = new DateTime('02:10');
、結果が"21:50"
.
$duration->sub($leg_duration);
時間を追加する"24:00"
これは正しいですか?