как я могу суммировать две даты?
У меня две даты в этом формате jh: i: s, и я хотел бы их суммировать
Я нашел этот скрипт, но не упоминал о днях, и я новичок в этом, вот сценарий, возможно, кто-то может внести необходимые изменения.
<?php /** * @author Masino Sinaga, http://www.openscriptsolution.com * @copyright October 13, 2009 */ echo sum_the_time('01:45:22', '17:27:03'); // this will give you a result: 19:12:25 function sum_the_time($time1, $time2) { $times = array($time1, $time2); $seconds = 0; foreach ($times as $time) { list($hour,$minute,$second) = explode(':', $time); $seconds += $hour*3600; $seconds += $minute*60; $seconds += $second; } $hours = floor($seconds/3600); $seconds -= $hours*3600; $minutes = floor($seconds/60); $seconds -= $minutes*60; return "{$hours}:{$minutes}:{$seconds}"; } ?>
Применение:
Все, что мне нужно, состоит в том, чтобы суммировать две даты из двух задач: Задача 1 займет 1 день 10 часов 20 минут 10 секунд Задача 2 займет 3 дня 17 часов 35 минут 40 секунд
поэтому результатом будет общее время между задачами 1 и 2
просто преобразуйте даты с помощью strtotime и суммируйте отметки времени, чем конвертируйте в дату снова, используя функцию даты:
$tmstamp = strtotime($date1) + strtotime($date2); echo date("Y md", $tmstamp) ;
но почему бы вам добавить две даты в первую очередь?
В целом, что они делают, это конвертировать часы и минуты в секунды и добавлять их. Затем они конвертируются обратно в часы / минуты.
Вам просто нужно конвертировать дни и секунды:
$seconds += $days * 3600 * 24
и затем конвертировать обратно:
$days = floor($seconds/(3600*24)); $seconds -= $days*3600*24