PHP Добавление 15 минут к значению времени

У меня есть форма, которая получает значение времени:

$selectedTime = $_REQUEST['time']; 

Время в этом формате – 9:15:00 – это 9:15 утра. Затем мне нужно добавить 15 минут и сохранить это в отдельной переменной, но я в тупике.

Я пытаюсь использовать strtotime без успеха, например:

 $endTime = strtotime("+15 minutes",strtotime($selectedTime))); 

но это не будет анализировать.

Ваш код не работает (разбор), потому что у вас есть дополнительный ) в конце, который вызывает ошибку анализа . Граф, у вас есть 2 ( и 3 ) . Это будет нормально работать, если вы исправите это, но strtotime() возвращает метку времени, чтобы получить strtotime() для пользователя время использования date() .

 $selectedTime = "9:15:00"; $endTime = strtotime("+15 minutes", strtotime($selectedTime)); echo date('h:i:s', $endTime); 

Получите редактор, который выделит синтаксис и покажет непревзойденные круглые скобки, фигурные скобки и т. Д.

Чтобы просто провести время без каких-либо TZ или DST и добавить 15 минут (прочитайте комментарий zerkms):

  $endTime = strtotime($selectedTime) + 900; //900 = 15 min X 60 sec 

Тем не менее, the ) является основной проблемой здесь.

Хотя вы можете сделать это через функции времени PHP, позвольте мне познакомить вас с классом DateTime PHP, который, наряду с его родственными классами, действительно должен быть в любом наборе инструментов разработчика PHP.

 // note this will set to today's current date since you are not specifying it in your passed parameter. This probably doesn't matter if you are just going to add time to it. $datetime = DateTime::createFromFormat('g:i:s', $selectedTime); $datetime->modify('+15 minutes'); echo $datetime->format('g:i:s'); 

Обратите внимание, что если вы хотите сделать это, то в основном обеспечите 12 или 24-часовую функциональность часов, на которую вы можете добавить / вычесть время и на самом деле не заботитесь о дате, поэтому вы хотите устранить возможные проблемы, связанные со временем суток, я бы рекомендовал один из следующих форматов:

!g:i:s 12-часовой формат без начальных нулей в час

!G:i:s 12-часовой формат с ведущими нулями

Обратите внимание ! элемент в формате. Это установило бы компонент даты в первый день в эпоху Linux (1-1-1970)

Чтобы развернуть предыдущие ответы, функция для этого может работать так (изменение формата времени и интервала, но вам понравится в соответствии с этим для функции.date , а это для DateInterval ):

(Здесь я также написал альтернативную форму ниже ).

 // Return adjusted time. function addMinutesToTime( $time, $plusMinutes ) { $time = DateTime::createFromFormat( 'g:i:s', $time ); $time->add( new DateInterval( 'PT' . ( (integer) $plusMinutes ) . 'M' ) ); $newTime = $time->format( 'g:i:s' ); return $newTime; } $adjustedTime = addMinutesToTime( '9:15:00', 15 ); echo '<h1>Adjusted Time: ' . $adjustedTime . '</h1>' . PHP_EOL . PHP_EOL; 

Вы также можете использовать код ниже. Это довольно просто.

 $selectedTime = "9:15:00"; echo date('h:i:s',strtotime($selectedTime . ' +15 minutes'));