VAShcherbakov
@VAShcherbakov
Новичек!

Как суммировать время?

Как суммировать время?

Пробую так, но выводит 11:30:00, а нужно получить 14:30:00
$time = '11:00:00';
$duration = '03:30:00';

$newTime = strtotime($time) + strtotime($duration);
$newTime = date("H:i:s", $newTime);
echo $newTime;
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@roman94
$time = '11:00:00';
$duration = '03:30:00';

$newTime = strtotime($time) + strtotime($duration) - strtotime("00:00:00");
$newTime = date("H:i:s", $newTime);
echo $newTime;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@magarif
Программист
php.net/manual/ru/function.strtotime.php

Оттуда:
количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC


Проще сделать так
$time     = '11:00:00';
$duration = '03:30:00';

$timeParts     = explode(':', $time);
$durationParts = explode(':', $duration);

function timeSum(...$arParams) {
  return str_pad(array_sum($arParams), 2, '0', STR_PAD_LEFT);
}
$newTimeParts = array_map('timeSum', $timeParts, $durationParts);
$newTime      = implode(':', $newTimeParts);

echo $newTime;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы