Подтвердить что ты не робот

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

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

$selectedTime = $_REQUEST['time'];

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

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

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

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

4b9b3361

Ответ 1

Ваш код не работает (разбор), потому что у вас есть дополнительный ) в конце, который вызывает ошибку Parse. Count, у вас есть 2 ( и 3 ). Это будет нормально работать, если вы исправите это, но 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

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

Ответ 2

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

// note this will set to today 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)

Ответ 3

Чтобы развернуть предыдущие ответы, функция для этого может работать так (изменение форматов времени и интервала, но вам нравится их в соответствии с это для функции .date и this для 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;

Ответ 4

strtotime возвращает текущую метку времени, а дата - форматировать метку времени

  $date=strtotime(date("h:i:sa"))+900;//15*60=900 seconds
  $date=date("h:i:sa",$date);

Это добавит 15 минут к текущему времени

Ответ 5

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

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

Ответ 6

Текущая дата и время

$current_date_time = date('Y-m-d H:i:s');

15 мин. Назад Дата и время

$newTime = date("Y-m-d H:i:s",strtotime("+15 minutes", strtotime($current_date)));