Как вы рассчитываете время окончания на основе времени начала и продолжительности? - PullRequest
3 голосов
/ 23 августа 2009

Я создаю календарь событий и передаю время запуска в PHP в формате 2009-09-25 15:00:00. Также передается продолжительность, которая может быть в формате 60 минут или 3 часа. Преобразование из часов в минуты не проблема. Как добавить промежуток времени к установленной начальной точке, чтобы правильно отформатировать конечное время?

Ответы [ 3 ]

9 голосов
/ 23 августа 2009

Простой способ, если у вас достаточно большой номер версии:

$when = new DateTime($start_time);
$when->modify('+' . $duration);
echo 'End time: ' . $when->format('Y-m-d h:i:s') . "\n";
7 голосов
/ 23 августа 2009

Используя strtotime () , вы можете преобразовать текущее время (2009-09-25 15:00:00) в метку времени, а затем добавить (60 * 60 * 3 = 3 часа) к метке времени. Наконец, просто конвертируйте его обратно в любое время.

//Start date
$date = '2009-09-25 15:00:00';
//plus time
$plus = 60 * 60 * 3;
//Add them
$time = strtotime($date) + $plus;
//Print out new time in whatever format you want
print date("F j, Y, g:i a", $time);
0 голосов
/ 23 августа 2009

В качестве дополнения к хорошему ответу @ Xeoncross strtotime, strtotime() поддерживает форматы, такие как "2009-09-25 +3 часа", "25 сентября +6 дней", "следующий понедельник", "последняя пятница", "-15 минут" и т. Д.

...