PHP добавить продолжительность в цикле - PullRequest
0 голосов
/ 20 марта 2020

Я рассчитываю продолжительность времени в то время как l oop по разнице времени входа и выхода из системы. Я хочу добавить все время в переменную и распечатать его. Код для этого я использую - -

$totaltimespent = new DateTime;
$totaltimespent->setTime(0, 0);
$timespent= (strtotime($totaltimespent->format("H:i:s")));

while ($row  = mysqli_fetch_array($result)) {
echo $row['timeoflogin'];
echo $row['logouttime'];

$startTime = new DateTime($row['timeoflogin']);
$endTime = new DateTime($row['logouttime']);
$duration = $startTime->diff($endTime);

echo $duration->format("%H:%I:%S");
$converttime= (strtotime($duration->format("%H:%I:%S")));

$timespent  = date("H:i:s",$converttime+$timespent);
}
echo $timespent;

TimeFlogin и время выхода из системы в формате - 05:03:53 вечера. $ Duration дает правильный результат. Я хочу добавить всю эту продолжительность в varaible и распечатать через некоторое время l oop. Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете просто добавить уже вычисленную разницу внутри l oop к другому DateTime объекту и получить окончательную разницу между ними.

$totalStart = new DateTime('today'); // this will create it with time 00:00:00
$totalEnd = new DateTime('today'); // we will use this to add the intervals from the loop

while ($row  = mysqli_fetch_array($result)) {
    ...
    $startTime = new DateTime($row['timeoflogin']);
    $endTime = new DateTime($row['logouttime']);
    $duration = $startTime->diff($endTime);
    $totalEnd->add($duration);
    ...
}

$totalTimeSpent = $totalStart->diff($totalEnd);

Теперь все, что вам нужно сделать, это отформатировать ее так, как вы хотите.

...